news 2026/6/10 18:11:59

蓝易云 - 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/6/10 12:23:42

TensorRT推理引擎的安全性与稳定性分析

TensorRT推理引擎的安全性与稳定性分析 在现代AI系统部署中&#xff0c;一个常见的挑战是&#xff1a;模型在实验室里表现优异&#xff0c;但一旦上线就出现延迟波动、显存溢出甚至输出不一致的问题。尤其是在医疗影像诊断、自动驾驶决策这类安全关键场景下&#xff0c;哪怕一次…

作者头像 李华
网站建设 2026/6/10 12:23:48

从学术研究到工业部署:TensorRT的关键作用

从学术研究到工业部署&#xff1a;TensorRT的关键作用 在自动驾驶的感知系统中&#xff0c;每毫秒都关乎安全&#xff1b;在电商推荐引擎背后&#xff0c;成千上万的用户请求必须在百毫秒内响应。然而&#xff0c;一个在论文中表现惊艳的深度学习模型&#xff0c;一旦进入真实生…

作者头像 李华
网站建设 2026/6/10 12:23:47

如何构建可持续演进的TensorRT推理体系?

如何构建可持续演进的TensorRT推理体系&#xff1f; 在AI模型从实验室走向产线的过程中&#xff0c;一个反复出现的问题是&#xff1a;为什么训练时表现优异的模型&#xff0c;部署后却“跑不动”&#xff1f;延迟高、吞吐低、显存爆满——这些问题在边缘设备或高并发服务中尤为…

作者头像 李华
网站建设 2026/6/10 14:27:37

大规模并发请求下的TensorRT性能表现

大规模并发请求下的TensorRT性能表现 在现代AI服务的生产环境中&#xff0c;一个常见的挑战浮出水面&#xff1a;如何在成千上万的并发请求下&#xff0c;依然保持毫秒级响应&#xff1f;无论是视频平台实时分析每一帧画面&#xff0c;还是电商平台瞬间处理数万用户的个性化推荐…

作者头像 李华
网站建设 2026/6/10 12:24:43

视觉大模型推理瓶颈破解:TensorRT优化方案

视觉大模型推理瓶颈破解&#xff1a;TensorRT优化方案 在自动驾驶的感知系统中&#xff0c;每毫秒都至关重要——一个 80ms 的延迟可能意味着车辆多行驶了 2 米&#xff1b;在工业质检产线上&#xff0c;30FPS 是硬性要求&#xff0c;慢一帧就可能导致漏检。然而现实是&#xf…

作者头像 李华
网站建设 2026/6/10 12:23:43

芒格的“远离“策略:知道自己不知道什么

芒格的"远离"策略&#xff1a;知道自己不知道什么关键词&#xff1a;芒格、远离策略、认知边界、投资决策、风险规避、能力圈、不确定性摘要&#xff1a;本文深入探讨了芒格提出的“远离”策略&#xff0c;即明确知道自己不知道什么。通过对这一策略的背景介绍&#…

作者头像 李华