redis--020

一、基础概念

Redis 的 BitMap 本质是 String 字符串类型,不是独立数据结构。

  • 最大容量:512M,对应 \(2^{32}\) 个 bit 位
  • 核心思想:一个 bit 位只存 0 / 1,用偏移量 offset 映射业务对象,节省存储空间

典型场景:用户按月签到,offset 代表当月第几天,1 = 签到,0 = 未签到

二、核心命令汇总

表格

命令 作用
SETBIT key offset value 在指定偏移 offset 位置,写入 0 或 1
GETBIT key offset 获取指定 offset 位置的 bit 值
BITCOUNT key [start end] 统计 key 里值为 1 的 bit 数量(签到总次数)
BITFIELD 批量查询 / 修改 / 自增多个 bit 位
BITFIELD_RO 只读版本,批量读取 bit 数组,返回十进制
BITOP op destkey key1 key2... 多 Bitmap 做位运算:AND 与、OR 或、XOR 异或,结果存入 destkey
BITPOS key bit [start end] 在指定范围查找第一个 0 或者 1 所在的 offset 位置

三、业务案例:用户按月签到

key 设计:sign:userId:年月,例如 sign:zhangsan:202201

  • offset = 日期 - 1(第 1 天 offset=0,第 31 天 offset=30)
  1. 用户 1 月 5 号签到:SETBIT sign:zhangsan:202201 4 1
  2. 查询 5 号有没有签到:GETBIT sign:zhangsan:202201 4
  3. 统计 1 月一共签到多少天:BITCOUNT sign:zhangsan:202201
相关推荐
IT规划师1 小时前
Redis 数据类型全解 - Stream 深度:消费者组、Pending 队列与死信处理(十)
redis·.net
我是大猴子12 小时前
redis
数据库·redis·缓存
码哥字节17 小时前
Redis 分布式锁的 7 个坑:从 setnx 到 Redlock
redis·分布式锁
徐小黑ACG20 小时前
Redis-基础
数据库·redis·缓存
鶴哥只手遮天1 天前
《Redis 8.10.3 深度剖析》系列 ·第 10 章 Hash 一:`listpack`、`hashtable` 与 `LISTPACK_EX`
redis·后端·开源
IT规划师1 天前
Redis 数据类型全解 - GEO 地理空间:附近的人、外卖、打车——背后原理与精度陷阱(九)
redis·.net
我不会起名字3222 天前
Redis 从 0 到 1(三十三):机器断电 Redis 起不来——AOF/RDB 损坏的 4 步抢救流程
redis·数据恢复·aof·rdb·排查