第 7 章 位图
Redis 的位图(bitmap)是由多个二进制位组成的数组,数组中的每个二进制位都有与之对应的偏移量(也称索引),用户通过这些偏移量可以对位图中指定的一个或多个二进制位进行操作。
图8-1 展示了一个包含 8 个二进制位的位图示例,这个位图存储的值为 10010100。

Figure 1. 图8-1 位图示例
Redis 为位图提供了一系列操作命令,通过这些命令,用户可以:
-
为位图指定偏移量上的二进制位设置值,或者获取位图指定偏移量上的二进制位的值。
-
统计位图中有多少个二进制位被设置成了 1。
-
查找位图中第一个被设置为指定值的二进制位并返回它的偏移量。
-
对一个或多个位图执行逻辑并、逻辑或、逻辑异或以及逻辑非运算。
-
将指定类型的整数存储到位图中。
本章接下来将对以上提到的各个位图命令进行介绍,并展示如何使用位图去实现用户行为记录器、0-1 矩阵存储程序以及能够有效地节约内存的整数计数器。