Redis技术文章
-
Redis TTL 返回 -1 表示键存在但没有过期时间,-2 表示键不存在。本文用命令和 Go 分支示例区分三种状态,并排查普通 SET 覆盖、过期窗口和查询上下文不一致等常见原因。216 收藏 -
Redis ACL 权限不能只看密码,还要同时限制可执行命令和可访问 key。本文用 ACL SETUSER、key pattern、selector 和高危命令清单,整理一套可落地的最小权限写法。207 收藏 -
Redis Stream 消费组中的 pending 消息已经投递但尚未确认。本文用 XPENDING 检查 PEL 和空闲时间,再用 XAUTOCLAIM 批量重新认领超时消息,并说明何时使用 XCLAIM 与 XACK。207 收藏 -
Redis FCALL_RO 只允许执行声明为 no-writes 的函数,适合可接受复制延迟的只读副本查询;FCALL 面向普通读写函数并应按节点角色路由。205 收藏 -
数据库 · Redis | 5天前 | 消息队列 · 消费组 · Redis Streams · 故障接管 · redis streams 消费组 XREADGROUP XACK XPENDING XAUTOCLAIM
Redis XREADGROUP 读不到新消息时,先区分 >、数字 ID 与 BLOCK 的职责:前者选择组的新消息或当前消费者的 pending 历史,BLOCK 只控制等待时间。本文再用 XPENDING、XACK 和 XAUTOCLAIM 排查确认与故障接管。192 收藏 -
Redis AOF 重写时磁盘占用变大,通常不是数据瞬间翻倍,而是旧 AOF、新 base 文件和重写期间新增写入同时存在。本文用 Redis 7 多段 AOF 结构、INFO persistence、du 与 df 命令定位空间峰值,并给出生产容量检查清单。191 收藏 -
Redis BigKeys 排查可以先用 SCAN 增量发现,再用 MEMORY USAGE 按字节估算,最后按风险和固定批次处理;本文说明 SAMPLES、COUNT 与 UNLINK 的边界。188 收藏 -
用 Redis SET NX EX 原子创建带过期时间的分布式锁,配合唯一 token 和 Lua 原子释放,避免锁永久残留或误删其他实例的新锁。186 收藏 -
对比 Redis Lua EVAL/EVALSHA 与 Redis 7+ Functions 的生命周期、配置方式和排查路径,处理 NOSCRIPT、函数注册、CROSSSLOT 与 BUSY 等常见问题。177 收藏 -
解释 Redis WATCH 监视键在 EXEC 前被修改时为什么返回 nil,并用双客户端示意、有限重试和边界清单处理乐观锁冲突。159 收藏 -
数据库 · Redis | 5天前 | Redis · cluster · slot迁移 · MOVED · ASK · 客户端路由 · redis slot Redis Cluster MOVED ASK reshard 拓扑刷新
Redis Cluster 扩缩容或 reshard 时,MOVED 和 ASK 都可能出现在客户端日志里,但它们代表的路由语义不同。本文从 slot 所有权、MIGRATING/IMPORTING 状态和客户端拓扑缓存出发,说明如何判断重定向是否正常以及该刷新什么。157 收藏 -
数据库 · Redis | 2天前 | Redis · 数据一致性 · HyperLogLog · 数据统计 · 计费系统 · redis hyperloglog PFADD PFCOUNT PFMERGE 精确计费
Redis HyperLogLog 能用很小的空间估算唯一元素数量,但 PFCOUNT 的结果存在近似误差且无法提供成员明细。本文说明误差如何放大到计费金额,并给出趋势统计与精确账单分层、命名、抽样对账和回退检查清单。156 收藏 -
Redis AOF 重写不是只写一个新文件:重写期间旧文件、新 base AOF 和增量写入可能同时占用空间。本文用 INFO persistence、du、df 和历史峰值建立提前发现磁盘不足的检查清单。154 收藏 -
Redis 连接池耗尽不一定是池太小。本文用 go-redis PoolStats、请求耗时和 Redis SLOWLOG 交叉判断池等待、慢命令与连接未归还,并给出修复顺序。152 收藏 -
Redis 出现 NOPERM 时,先用 ACL WHOAMI 确认连接身份,再用 ACL GETUSER、ACL DRYRUN 和 ACL LOG 区分命令、键模式与认证问题,最后按最小权限修复。134 收藏