Redis技术文章
-
解释 Redis HSCAN 的 COUNT 参数为什么只是提示值,演示如何用游标循环完整遍历 Hash,并通过批次上限控制客户端内存与处理耗时。319 收藏 -
Redis 8.4 新增 MSETEX,可在一次操作中写入多个字符串键并共享过期策略。本文从旧式 MSET 加 EXPIRE 的等待链出发,核对 NX、XX、EX、PX、EXAT、PXAT 和 KEEPTTL 的边界,给出升级前后的验收方法。314 收藏 -
Redis EXPIRE 的 GT 只接受比当前 TTL 更长的新过期时间,LT 只接受更短的时间;结合 TTL 返回值,可以安全实现缓存续期和过期收紧。313 收藏 -
用 Redis Lua 把库存检查、扣减和已售计数放进一次服务端执行,讲清 KEYS、ARGV、Cluster 同槽位以及原子执行不等于异常回滚的边界。311 收藏 -
Redis Cluster 中,普通 Pub/Sub 适合全局广播,shard channels 适合按槽位限制传播范围。本文用命令、槽位和可靠性边界说明两者如何选。311 收藏 -
说明 Redis 8.10 HIMPORT 如何用连接级 fieldset 复用字段名批量写入 Hash,并梳理固定 schema、值顺序、连接池和清理边界。309 收藏 -
Redis Pub/Sub 断线重连不能补发已丢失消息,但可以保存订阅意图,在新连接建立后按快照恢复频道并用订阅回执确认 ready。本文给出 Go 风格实现思路和 Pub/Sub、Streams 的选型边界。309 收藏 -
Redis OBJECT ENCODING 只告诉你 key 当前采用的内部布局。本文用 listpack、hashtable 和 quicklist 说明编码变化的触发条件,并给出结合 MEMORY USAGE 与延迟数据判断真实性能影响的方法。308 收藏 -
Redis Pipeline 出现单条错误时,不要只看批次级 Exec 返回值。本文用 go-redis 示例说明如何按命令下标定位失败项,区分 WRONGTYPE、redis.Nil 与连接错误,并判断何时需要 TxPipeline。305 收藏 -
Redis SCAN 即使带了 MATCH 和 COUNT,也可能在一次完整迭代中返回重复键。原因是 SCAN 只保存游标,MATCH 负责过滤,COUNT 只是工作量提示;应用侧应使用幂等操作或按需去重,并检查遍历期间的数据变化。305 收藏 -
Redis 写入缓存时用 SET 的 EX 或 PX 同步设置值和 TTL,读取并续期时用 GETEX,避免 GET、SET、EXPIRE 拆分造成竞态;本文还区分单命令原子性与多步业务条件。303 收藏 -
Redis HyperLogLog 适合统计大规模 UV:用 PFADD 写入访问标识,PFCOUNT 读取估算值,PFMERGE 合并渠道或分片,并根据 0.81% 左右标准误差判断是否需要精确 Set。302 收藏 -
Redis 列表做轻量任务队列时,单独使用 RPOP 容易在消费进程崩溃后丢任务。本文用 LMOVE/BLMOVE 把任务先移入 processing list,再用 LREM 确认完成,拆开重复消费、幂等和集群同槽边界。300 收藏 -
Redis Cluster 中 MULTI 不能直接跨槽位执行。本文解释 hash slot、哈希标签和 MOVED 边界,并给出键设计、事务拆分与上线检查清单。300 收藏 -
Redis 7.0 起将 AOF 组织为一个 BASE、多个 INCR 和一份 manifest。本文说明文件集合关系、BGREWRITEAOF 的新旧代切换、失败保护、INFO persistence 检查以及备份与性能边界。299 收藏