Redis技术文章
-
对比 Redis Lua EVAL/EVALSHA 与 Redis 7+ Functions 的生命周期、配置方式和排查路径,处理 NOSCRIPT、函数注册、CROSSSLOT 与 BUSY 等常见问题。177 收藏 -
Redis 在生成 RDB 快照时可能因 fork 和写时复制出现延迟抖动。本文从慢查询时间线、INFO persistence 指标和内存峰值入手,给出判断、避让与回滚方法。176 收藏 -
从 CLUSTER KEYSLOT 和 CRC16 哈希槽入手,定位 Redis Cluster 的 CROSSSLOT 报错,用 Key Tag 设计同槽键名,并验收 MGET、MULTI 与 Lua 的批量访问边界。170 收藏 -
Redis WATCH 只能在提交前发现被监视键发生变化,并不能保证事务一定成功。本文用并发写入示例拆开事务提交返回空数组、重试窗口和放弃重试的业务边界。165 收藏 -
Redis 过期键到了时间却没有立刻消失,通常不是 TTL 失效,而是惰性删除与定期采样的工作方式。本文用 TTL、EXISTS 和内存指标区分可见延迟、采样清理与大键风险。164 收藏 -
Redis 的 EXPIRE 作用在整个 key 上,不能直接给同一个 HASH 的每个 field 设置独立 TTL。本文从用户会话属性和临时状态的场景出发,对比拆 key、时间戳字段、ZSET 索引三种设计,并给出清理任务、并发边界和验收方法。162 收藏 -
用 Redis SETBIT 把每天签到压成位图,重点处理日期偏移、BITCOUNT 统计、重复签到和跨月清理,附可运行示例与核对方法。162 收藏 -
Redis MEMORY USAGE 的 SAMPLES 不是精度百分比,而是嵌套集合成员的采样数量。本文解释默认值、SAMPLES 0、估算波动和容量规划时的取值方法。162 收藏 -
解释 Redis WATCH 监视键在 EXEC 前被修改时为什么返回 nil,并用双客户端示意、有限重试和边界清单处理乐观锁冲突。159 收藏 -
Redis WAIT 用于等待当前连接此前写命令被副本确认,但超时后仍会返回已确认的副本数。本文用 SET、WAIT 和 INFO replication 演示如何判断返回值、区分复制确认与强一致,并处理连接复用和超时边界。157 收藏 -
Redis Cluster 扩缩容或 reshard 时,MOVED 和 ASK 都可能出现在客户端日志里,但它们代表的路由语义不同。本文从 slot 所有权、MIGRATING/IMPORTING 状态和客户端拓扑缓存出发,说明如何判断重定向是否正常以及该刷新什么。157 收藏 -
Redis HyperLogLog 能用很小的空间估算唯一元素数量,但 PFCOUNT 的结果存在近似误差且无法提供成员明细。本文说明误差如何放大到计费金额,并给出趋势统计与精确账单分层、命名、抽样对账和回退检查清单。156 收藏 -
Redis LPOS 的 rank 决定从头部还是尾部计数,maxlen 决定最多比较多少个列表元素;两者组合时,返回位置仍是原列表的零基索引。156 收藏 -
Redis AOF 重写不是只写一个新文件:重写期间旧文件、新 base AOF 和增量写入可能同时占用空间。本文用 INFO persistence、du、df 和历史峰值建立提前发现磁盘不足的检查清单。154 收藏 -
Redis EXPIRE 的 NX 只在 key 没有过期时间时设置 TTL,XX 只在 key 已有过期时间时设置 TTL。本文用 TTL、返回值和 redis-cli 示例说明两者的选择边界。153 收藏