Redis技术文章
-
Redis EXPIRE 的 GT 只接受比当前 TTL 更长的新过期时间,LT 只接受更短的时间;结合 TTL 返回值,可以安全实现缓存续期和过期收紧。313 收藏 -
用 Redis Lua 把库存检查、扣减和已售计数放进一次服务端执行,讲清 KEYS、ARGV、Cluster 同槽位以及原子执行不等于异常回滚的边界。311 收藏 -
Redis Cluster 中,普通 Pub/Sub 适合全局广播,shard channels 适合按槽位限制传播范围。本文用命令、槽位和可靠性边界说明两者如何选。311 收藏 -
Redis Pub/Sub 断线重连不能补发已丢失消息,但可以保存订阅意图,在新连接建立后按快照恢复频道并用订阅回执确认 ready。本文给出 Go 风格实现思路和 Pub/Sub、Streams 的选型边界。309 收藏 -
从数据是否可重建、访问冷热和 TTL 三个维度选择 Redis 内存淘汰策略,并用 INFO 指标验证配置结果。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 Cluster 中 MULTI 不能直接跨槽位执行。本文解释 hash slot、哈希标签和 MOVED 边界,并给出键设计、事务拆分与上线检查清单。300 收藏 -
Redis 7.0 起将 AOF 组织为一个 BASE、多个 INCR 和一份 manifest。本文说明文件集合关系、BGREWRITEAOF 的新旧代切换、失败保护、INFO persistence 检查以及备份与性能边界。299 收藏 -
Redis 7.0 及以上可以用 ACL Selector 为同一用户配置多组独立规则。本文用根权限、key 前缀和命令组合说明括号规则的匹配方式、验证命令与重建边界。295 收藏 -
Redis Streams 幂等生产应优先按版本选择 XADD 的 IDMP/IDMPAUTO,旧版本用 SET NX 配合业务幂等号,并区分生产去重、消费确认与业务落库幂等。295 收藏 -
Redis 收不到 expired 事件,通常是 notify-keyspace-events 缺少 E/K 或 x、频道与数据库编号不匹配,或误把 TTL 归零当成事件发送时刻。本文给出最小配置、频道对照和集群排查清单。291 收藏 -
Redis 选 allkeys-lru 还是 volatile-ttl,关键不在策略名称,而在键是否都有 TTL、实例是否只做缓存以及是否允许淘汰。本文用配置、边界和监控指标给出可执行的选择方法。288 收藏