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
相关推荐
不好听6139 小时前
缓存三大坑:穿透·击穿·雪崩一次讲透
redis
行百里er9 小时前
Redis 核心数据结构(四)——Set 与 Sorted Set,去重与排名神器
redis·后端
仍然.9 小时前
Redis---事务
数据库·redis
MacroZheng9 小时前
Redis 已正式接入 AI !
人工智能·redis·后端
我叫黑大帅9 小时前
为了研究Redis 三大守护神,我做了一个本地模拟!
redis·后端·面试
晚安日记wanna9 小时前
订单30分钟未支付自动取消:定时任务为什么被面试官嫌弃
redis·后端·面试
行百里er9 小时前
Redis 核心数据结构(二)——List 与消息队列
redis·后端
行百里er9 小时前
Redis 核心数据结构(三)——Hash,把一堆字段塞进一个 Key
redis·后端
光影少年9 小时前
Redis + Node 如何支撑百万级并发
redis·后端·node.js