Redis技术文章
-
Redis AOF 重写期间延迟升高时,先用 INFO persistence 确认窗口,再结合 COW、fork、fsync 排队和延迟事件区分资源竞争与命令本身变慢。134 收藏 -
修改 Redis maxmemory-policy 前,先用 INFO、SCAN 和 MEMORY USAGE 建立键空间、碎片和大键基线,判断新策略会淘汰哪些键,避免把持久数据误当成缓存。133 收藏 -
用 XINFO GROUPS、XINFO CONSUMERS 与 XPENDING 区分 Redis Streams 的未投递积压和未确认积压,并说明 lag、pending、idle、inactive 的版本语义与告警组合。132 收藏 -
Redis 8.8 的 INCREX 把计数、上限、过期和只在新窗口设置 TTL 组合成一个原子命令。本文用固定窗口限流示例说明如何从简单 Lua 方案迁移,如何读取实际增量,以及哪些多键和滑动窗口场景仍应保留 Lua。131 收藏 -
Redis Bitmap 的 offset 是从 0 开始的位偏移,不是字节下标。本文用字节映射、Go 边界检查和 BITFIELD 定宽字段示例,说明如何计算位图偏移并避免负数、整数溢出和 2^32 上限带来的越界问题。130 收藏 -
围绕 Redis 7.4 的 HEXPIRE、HTTL 与 Redis 8.0 的 HGETEX,说明如何在同一个 hash 内为不同 field 设计独立 TTL,并补齐版本、ACL、日志审计、监控和回退检查。130 收藏 -
Redis CLIENT PAUSE 适合在升级或主从切换时暂时控制客户端请求。本文用 WRITE 与 ALL 两种模式拆解读写隔离、CLIENT UNPAUSE 恢复和维护窗口验收,避免把暂停命令当成无条件的全局锁。129 收藏 -
Redis Streams 的 XACK 只负责移除消费组的待确认记录,并不会自动让业务副作用幂等。本文用事件 ID、去重记录、确认时机和积压接管,设计一条可重试的消费链路。129 收藏 -
解释 Redis SET NX EX 在键不存在、已有 TTL 和条件更新场景下的真实行为,区分 NX 条件写入、EX 重置租期与 KEEPTTL 保留剩余 TTL,并给出锁初始化、更新和排查命令。128 收藏 -
用 XPENDING 按消息 ID 范围、消费者及空闲时间查看 Redis Streams 待确认条目,结合 XRANGE 读取正文,区分 pending 与 lag,并解释分页、未知指标和裁剪后的边界。126 收藏 -
Redis MEMORY USAGE 返回的是键和值在 RAM 中的分配估算,不等于 STRLEN、HLEN 等逻辑数据量,也不等于实例 used_memory。本文说明键名和管理开销、聚合类型 SAMPLES、紧凑编码以及单键排查和容量规划的边界。126 收藏 -
Redis Lua 脚本返回多个值时,先把结果设计成稳定的索引数组,再按客户端类型解析;本文说明 Lua 表、RESP 数组、Python list、Go 切片和空值之间的映射。125 收藏 -
Redis GEOSEARCH 可以从地理索引中按圆形或矩形范围筛选成员。本文从配送围栏误判场景出发,拆开 BYRADIUS、WITHDIST、ASC、COUNT 与 ANY 的组合边界,给出可核对的命令结构和排障判断。124 收藏 -
Redis COPY 适合在同一实例内复制缓存或配置键,但 REPLACE、DB 和 Redis Cluster 的哈希槽限制很容易被忽略。本文用可验证命令讲清返回值、TTL、复杂度和失败边界。123 收藏 -
Redis PFCOUNT 的多键形式估算多个 HyperLogLog 的并集基数,因此不会把各键结果简单相加。本文用重叠访客说明原因,并比较多键 PFCOUNT、PFMERGE 和单键计数相加的适用边界。123 收藏