Redis技术文章
-
从零做一个 Redis 慢命令快照小工具,采集 SLOWLOG 样本,解析命令耗时和 Key 线索,按命令类型聚合成 Markdown 报告,用于接口延迟排查和上线前验收。501 收藏 -
Redis 客户端缓存开启 CLIENT TRACKING 后,如何确认读过的键能收到失效通知?本文用 RESP3、BCAST、NOLOOP 和 TRACKINGINFO 组成一套可复查的验收流程。500 收藏 -
Redis Stream 消费组出现 pending 积压时,先用 XPENDING 看数量和空闲时间,再用 XAUTOCLAIM 接管超时消息,最后通过幂等、分批和回滚把积压安全排空。494 收藏 -
根本原因是JedisSentinelPool未真正启用自动发现机制;必须显式设置setTestOnBorrow(true)、传入至少两个可达哨兵地址、调大sentinelMonitorInterval,否则轮询不触发重建且DNS/连接复用导致持续连旧主。482 收藏 -
能,但仅限Redis服务器端EVAL/EVALSHA上下文;需用正确日志级别常量和预拼接字符串,且依赖redis.conf中loglevel和logfile配置生效。479 收藏 -
repl-backlog-ttl是Redis主节点在无从节点连接时自动释放复制积压缓冲区的时间阈值,默认3600秒;超时后清空backlog,导致重连从节点无法部分同步而触发开销巨大的全量同步。477 收藏 -
PSUBSCRIBE性能瓶颈源于PUBLISH时线性遍历所有pattern做glob匹配。无索引、无缓存、无短路,pattern越多越慢;大小写敏感且*不匹配空字符串,易误配;超20个pattern或100qps即引发CPU毛刺。476 收藏 -
Redis BITFIELD 适合把多个小整数压进一个字符串,但积分计数一旦选错位宽或溢出策略,结果可能悄悄回绕。本文用积分桶示例拆开 GET、INCRBY、OVERFLOW 的边界,并给出可重复的验收命令。476 收藏 -
执行replicaofnoone再replicaof不会清空从库数据,仅切换复制源;真正全量同步需确保无运行复制流且master_replid/offset不匹配,必要时手动清空或重启从库。474 收藏 -
+sdown表示单个哨兵认定主节点失联,+odown才是触发故障转移的共识临界点;两者时间差暴露网络或配置问题,+odown后还需经选举、选从库、提升等步骤才能完成切换。465 收藏 -
本文用 Redis Bitmap 实现用户签到:用 SETBIT 写入每天状态,用 GETBIT 查询当天是否签到,用 BITCOUNT 快速统计月签到天数,并补充连续签到和键设计建议。464 收藏 -
本文从 Redis 分布式锁偶发并发进入的现场出发,复现旧请求误删新锁的问题,定位锁值缺少身份标记的根因,并用 token 校验方式修复释放锁流程。464 收藏 -
Redis6+的io-threads应设为2~8,不超过磁盘队列深度的2倍,且必须保持io-threads-do-readsno;它仅加速写入内核页缓存,不加速fsync,设得过多反而加剧IOWAIT和延迟。463 收藏 -
集群模式下slave-read-onlyyes无效,因集群协议绕过主从配置;必须用readonly命令开启连接级只读,使从节点响应本主槽读请求。461 收藏 -
应先检查是否连接泄露,再调整maxclients:通过redis-cliclientlist确认连接是否持续增长,修复Jedis未close问题;若确需扩容,须同步调高系统ulimit-n并重启Redis。460 收藏