news 2026/5/3 6:32:43

蓝易云 - Redis之bitmap类型解读

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
蓝易云 - Redis之bitmap类型解读

Redis 的 Bitmap 本质上不是“新数据类型”,而是把 String 当成一段连续的二进制位数组来用:每一位只有 0/1,非常适合做“海量布尔状态”的低成本存储与聚合统计 ✅🙂


1)核心特性:为什么 Bitmap 适合“业务运营数据”

  • 极致省内存:1 个状态只占 1 bit。粗算公式:N 个用户状态 ≈ N / 8 字节(不含 key 与元数据)。

  • 天然支持聚合:支持按位统计、按位或/与/异或做集合运算(活跃、留存、交集、并集)。

  • 高性能:单点读写位(GETBIT/SETBIT)接近 O(1),适合高并发写入。


2)命令实战:最常见的“签到/活跃”模型

示例:按“天”记录用户是否活跃(offset = userId)

SETBIT active:20251227 10001 1 GETBIT active:20251227 10001 BITCOUNT active:20251227

解释:

  • SETBIT key offset value:把active:20251227的第10001位设置为1,表示该用户当天活跃。offset 越大,底层字符串会扩容,因此 userId 若跨度极大要评估内存。

  • GETBIT:读取该用户当天是否活跃,返回 0/1,适合接口秒级判断。

  • BITCOUNT:统计整张位图中为 1 的数量,可直接得到当天 DAU(日活)。


3)留存/交集:用位运算直接算(企业最爱这一步)

BITOP AND retain:20251226_20251227 active:20251226 active:20251227 BITCOUNT retain:20251226_20251227

解释:

  • BITOP AND destkey key1 key2:对两天活跃位图做按位与,只有两天都为 1 的用户位才会保留为 1,这就是 次日留存人数。

  • BITCOUNT destkey:统计留存人数,避免把明细拉回业务层计算,省网络与 CPU。


4)Bitmap 工作流(文本流程图)

定义 <span style="color:red">Key 维度</span>(按天/按月/按活动) ↓ 设计 <span style="color:red">offset 映射</span>(userId / dayIndex / featureIndex) ↓ 用 <span style="color:red">SETBIT</span> 写入状态(0/1) ↓ 用 <span style="color:red">GETBIT</span> 做实时判断 ↓ 用 <span style="color:red">BITCOUNT / BITOP</span> 做统计与交并集

5)对比表:什么时候 Bitmap 赢,什么时候别硬上

需求场景推荐方案原因
海量用户 0/1 状态(签到、是否活跃、是否命中)Bitmap极省内存 + 易聚合
需要保存“具体成员列表”并做增删查SetBitmap 只能表达位,不保存成员信息
只要估算去重(允许少量误差)HyperLogLog更省内存,但不可回溯明细
要保存计数/多字段位段(如 3bit 等级、5bit 权重)BITFIELD位段写入更紧凑(需严谨规划)

6)三条“务实避坑”建议(很关键)

  1. 避免超大稀疏 offset:例如直接用 10 亿的 userId,会导致位图扩容到对应字节,内存瞬间膨胀。可先做 id 压缩映射或按区间分片 key。

  2. 维度要可控:常用按天/按月建 key,并配合 TTL,避免历史数据无限增长。

  3. 统计尽量在 Redis 内完成:BITOP + BITCOUNT 比“把数据拉回应用层遍历”更稳、更省成本。🙂

如果你告诉我你的具体业务(例如:签到按“用户维度”还是按“日期维度”、userId 是否连续、日活量级),我可以给你一套更贴近生产的 key 设计与分片策略,让 Bitmap 既省内存又不踩扩容雷。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:45:21

AI推理平台构建:为何离不开TensorRT?

AI推理平台构建&#xff1a;为何离不开TensorRT&#xff1f; 在自动驾驶的感知系统中&#xff0c;每毫秒都关乎安全&#xff1b;在电商大促的推荐引擎里&#xff0c;每一次响应延迟都可能意味着订单流失。当深度学习模型走出实验室&#xff0c;进入真实业务场景时&#xff0c;人…

作者头像 李华
网站建设 2026/5/2 12:30:58

如何验证TensorRT转换后模型的准确性?

如何验证TensorRT转换后模型的准确性&#xff1f; 在自动驾驶系统中&#xff0c;一个原本准确率高达99.2%的目标检测模型&#xff0c;部署到车载T4推理卡上后&#xff0c;突然开始频繁漏检行人。排查发现&#xff0c;并非模型本身问题&#xff0c;而是经过TensorRT的INT8量化后…

作者头像 李华
网站建设 2026/5/2 14:29:27

大模型推理资源调度策略与TensorRT集成

大模型推理资源调度策略与TensorRT集成 在当今大模型加速落地的背景下&#xff0c;一个尖锐的问题摆在工程团队面前&#xff1a;如何让千亿参数的模型既跑得快、又省资源&#xff1f;很多团队最初直接将训练好的PyTorch模型部署上线&#xff0c;结果发现单请求延迟动辄上百毫秒…

作者头像 李华
网站建设 2026/5/1 12:48:34

深度访谈:10位文化行业大佬谈提示工程的价值

当AI遇见文化&#xff1a;10位行业大佬揭秘提示工程如何重构内容创作与传承 摘要 凌晨3点&#xff0c;作家林深盯着电脑屏幕上的空白文档发呆——这是他连续一周卡在小说大纲里了。直到他输入一行提示词&#xff1a;“以民国旧书店为背景&#xff0c;生成包含悬疑元素的故事大纲…

作者头像 李华
网站建设 2026/5/2 11:07:05

大模型推理服务降本增效:TensorRT实战案例

大模型推理服务降本增效&#xff1a;TensorRT实战案例 在大模型落地生产环境的今天&#xff0c;一个现实问题正困扰着众多AI团队&#xff1a;明明训练效果惊艳&#xff0c;但一上线就“卡成PPT”。某推荐系统跑BERT-base&#xff0c;单次推理延迟45ms&#xff0c;QPS刚过200&a…

作者头像 李华
网站建设 2026/4/23 5:23:20

TensorRT与原生PyTorch性能对比实验报告

TensorRT与原生PyTorch性能对比实验报告 在现代AI系统部署中&#xff0c;一个训练好的模型从实验室走向生产环境时&#xff0c;往往面临“推理效率”的严峻考验。以图像分类任务为例&#xff0c;ResNet50 在 PyTorch 中轻松跑通测试后&#xff0c;一旦接入实时视频流服务&#…

作者头像 李华