BitMap 数据结构
2026年3月2日小于 1 分钟
BitMap 数据结构
BitMap 即位图,下面用一个例子来说明什么是BitMap。
用户签到
- 假设有一个用户签到的场景,每天用户签到一次,签到成功后记录签到状态。
- 传统的做法是使用一个布尔类型的字段来记录签到状态,例如:
CREATE TABLE user_sign_in (
user_id INT PRIMARY KEY,
sign_in_date DATE,
is_signed_in BOOLEAN
);- 但是这种做法会占用较多的存储空间,尤其是当用户数量较多时,每个用户都需要一个布尔字段来记录签到状态。
- 使用BitMap可以更高效地存储签到状态。每个用户对应一个Bit位,签到成功时将对应的Bit位设置为1,未签到时设置为0。
- 如图所示:

- 如图所示:
图:张三的签到情况
- Redis是利用string类型来实现BitMap的,因此最大上限为512M,转换为bit为2^32个bit位。