Redis技术文章
-
BLMOVE 阻塞超时不会移动任何元素,因此不需要回滚。真正需要补偿的是任务已经进入 processing 后业务失败或 worker 崩溃的场景。本文用 ready、processing、ack 和重试边界设计可靠队列。111 收藏 -
Redis Stream 的 XTRIM MINID 会删除低于指定 ID 的历史条目,适合按时间近似控制保留窗口;MAXLEN 则按数量裁剪。本文用命令、边界表和复查方法说明精确与近似裁剪的取舍。110 收藏 -
Redis Streams pending 表示消费组已投递但尚未确认的消息。本文用 XPENDING、XINFO 和 XAUTOCLAIM 建立排查与恢复边界。109 收藏 -
Redis 客户端缓存如何在 OPTIN 与 OPTOUT 之间选择?本文从默认跟踪范围、CLIENT CACHING YES、CLIENT UNTRACKING、连接失效和上线检查清单说明两种策略的适用边界。109 收藏 -
Redis Sentinel故障转移时,客户端不能继续依赖旧主节点地址。本文以服务发现、连接池、超时、退避和重试边界为主线,给出一套可落地的重连配置方法。108 收藏 -
Redis BLMOVE 在源列表暂时没有元素时会阻塞,timeout 到期返回 nil 或 null,表示本次移动没有完成。本文说明如何用 EXISTS、TYPE、LLEN 观察源键,并处理补查时的并发竞态。108 收藏 -
Redis 布隆过滤器的 capacity 是初始子过滤器容量,超过后默认会创建新的子过滤器;每个子过滤器都有自己的位数组和哈希函数,因此 SIZE 与 FILTERS 会随扩容增加。本文用 BF.RESERVE、BF.INFO 和参数取舍说明如何定位增长原因。107 收藏 -
从最近访问、累计频率、热点迁移和 TTL 设计几个维度比较 Redis 的 allkeys-lru 与 allkeys-lfu,并给出配置和观测检查清单。106 收藏 -
Redis GEOSEARCH 做附近门店查询时,距离相同、门店坐标变化和分页游标都会影响结果稳定性。本文用 GEOSEARCH、WITHDIST 和业务排序键拆解半径分页边界,并给出可重复的校验方法。105 收藏 -
Redis FUNCTION STATS 只能观察当前正在执行的函数,本文用 Redis 8.0 的真实长函数复现 running_script、duration_ms 与 engines 返回值,并说明它和历史调用统计的边界。105 收藏 -
缓存穿透不能只靠单一缓存策略。本文把 Bloom Filter、短 TTL 空值缓存和原子回源限流组合起来,说明请求顺序、参数边界、Go 示例与监控指标。105 收藏 -
Redis Lua 接收 JSON 时,ARGV 仍是原始字符串。本文用一次解码、字段类型校验和明确的写入/返回转换,处理字符串、数字、布尔值与 Lua 表混用带来的误判。104 收藏 -
Redis 的 LFU 淘汰并不是精确统计访问次数,而是用概率计数器配合衰减周期估算热点。本文从 allkeys-lfu 的工作边界出发,解释 lfu-log-factor、lfu-decay-time 如何影响判断,并给出可复现的验收步骤与误判处理方法。101 收藏 -
从 Redis 消费者组的 PEL 入手,说明如何用 XPENDING 识别滞留消息、用 XAUTOCLAIM 或 XCLAIM 转移所有权,并通过幂等处理、XACK 和失败隔离完成恢复闭环。101 收藏