Redis Bitmaps 是一種使用二進制位來表示數據的存儲結構,它可以高效地處理大量的位級操作。以下是一些常用的 Redis Bitmap 操作:
設置位(SETBIT):將指定位設置為 1。
語法:SETBIT key offset value
示例:SETBIT mybitmap 0 1
將 mybitmap 的第 0 位設置為 1。
獲取位(GETBIT):獲取指定位的值(0 或 1)。
語法:GETBIT key offset
示例:GETBIT mybitmap 0
將返回 mybitmap 的第 0 位的值(0 或 1)。
檢查位是否設置(BITCOUNT):計算指定位中設置為 1 的位數。
語法:BITCOUNT key [start] [end]
示例:BITCOUNT mybitmap
將返回 mybitmap 中設置為 1 的位數。
按位或(OR):將兩個位圖進行按位或操作,并將結果存儲在一個新位圖中。
語法:BITOP OR destination_key key [key ...]
示例:BITOP OR mybitmap1 mybitmap2
將 mybitmap1 和 mybitmap2 進行按位或操作,并將結果存儲在 mybitmap 中。
按位與(AND):將兩個位圖進行按位與操作,并將結果存儲在一個新位圖中。
語法:BITOP AND destination_key key [key ...]
示例:BITOP AND mybitmap1 mybitmap2
將 mybitmap1 和 mybitmap2 進行按位與操作,并將結果存儲在 mybitmap 中。
按位異或(XOR):將兩個位圖進行按位異或操作,并將結果存儲在一個新位圖中。
語法:BITOP XOR destination_key key [key ...]
示例:BITOP XOR mybitmap1 mybitmap2
將 mybitmap1 和 mybitmap2 進行按位異或操作,并將結果存儲在 mybitmap 中。
按位非(NOT):將一個位圖的每一位進行按位非操作,并將結果存儲在一個新位圖中。
語法:BITOP NOT destination_key key
示例:BITOP NOT mybitmap
將對 mybitmap 的每一位進行按位非操作,并將結果存儲在 mybitmap_not 中。
按位左移(LEFT SHIFT):將一個位圖的每一位向左移動指定的位數,并將結果存儲在一個新位圖中。
語法:BITOP LEFT SHIFT destination_key key offset
示例:BITOP LEFT SHIFT mybitmap 1 mybitmap 0
將 mybitmap 的第 0 位向左移動 1 位,并將結果存儲在 mybitmap_shifted 中。
按位右移(RIGHT SHIFT):將一個位圖的每一位向右移動指定的位數,并將結果存儲在一個新位圖中。
語法:BITOP RIGHT SHIFT destination_key key offset
示例:BITOP RIGHT SHIFT mybitmap 1 mybitmap 0
將 mybitmap 的第 0 位向右移動 1 位,并將結果存儲在 mybitmap_shifted 中。
通過這些操作,您可以高效地處理位級數據,例如用戶活躍度、投票統計等場景。