Introduction to Redis bitmaps
Redis bitmaps are an extension of the string data type that lets you treat a string like a bit vector. You can also perform bitwise operations on one or more strings. Some examples of bitmap use cases include:
- Efficient set representations for cases where the members of a set correspond to the integers 0-N.
- Object permissions, where each bit represents a particular permission, similar to the way that file systems store permissions.
Suppose you have 1000 sensors deployed in the field, labeled 0-999. You want to quickly determine whether a given sensor has pinged the server within the hour.
You can represent this scenario using a bitmap whose key references the current hour.
- Sensor 123 pings the server on January 1, 2024 within the 00:00 hour.
> SETBIT pings:2024-01-01-00:00 123 1 (integer) 0
- Did sensor 123 ping the server on January 1, 2024 within the 00:00 hour?
> GETBIT pings:2024-01-01-00:00 123 1
- What about server 456?
> GETBIT pings:2024-01-01-00:00 456 0
SETBITsets a bit at the provided offset to 0 or 1.
GETBITreturns the value of a bit at a given offset.
BITOPlets you perform bitwise operations against one or more strings.
See the complete list of bitmap commands.
GETBIT are O(1).
BITOP is O(n), where n is the length of the longest string in the comparison.
- Redis Bitmaps Explained teaches you how to use bitmaps for map exploration in an online game.
- Redis University's RU101 covers Redis bitmaps in detail.