-
缓存雪崩主因是大量key过期时间高度趋同,需通过扫描TTL、监控expired_keys曲线及检查写入逻辑验证;应采用SETEX或SET...EX原子命令,在基础过期时间上叠加5%–20%随机偏移,并确保所有写入路径(含定时任务、MQ、后台)均覆盖随机化。258 收藏 -
开启lazyfree-lazy-evictionyes且Redis≥6.0后,淘汰策略触发的内存释放由后台线程异步执行,主线程不再被同步释放大Key卡住。258 收藏 -
优先用redis-check-aof--fix自动修复尾部无效数据,若失败则需结合RDB回滚或从节点同步;切勿手动编辑或截断,避免破坏RESP协议完整性。256 收藏 -
Redis有序集合仅按score排序,不支持多字段或条件排序;需用Lua脚本在服务端原子重排,如score相同时按name字典序,避免客户端排序导致的性能与一致性问题。255 收藏 -
根本原因是客户端将从节点视为独立服务端并为每个从节点创建独立连接池。开启读写分离后,Jedis/Lettuce会主动发现并连接所有从节点,导致连接数激增、从库负载过高;解决关键是禁用客户端拓扑发现,改用代理层统一入口或手动控制连接复用。254 收藏 -
SPOP是真正随机的,底层用Fisher-Yates变种算法对当前存在元素随机抽取;但因哈希表桶分布和短时随机种子偏差,可能感觉“不均匀”,非bug。250 收藏 -
min-slaves-to-write是主从切换丢数据时首要排查项,它控制主节点在合格从节点不足时拒绝写入,但需配合min-slaves-max-lag和真实复制状态(state=online、lag≤阈值)才生效。249 收藏 -
SLAVEOFNOONE是断连+角色重置的原子操作:终止复制连接、清空主节点状态、将role改为master,运行时生效但重启回退,不清理数据、不通知其他节点。247 收藏 -
根本原因是sentineldown-after-milliseconds阈值过短,而主库执行耗时Lua脚本导致PING响应超时,哨兵误判为主观下线;典型表现为INFOreplication正常但日志频繁出现+sdown又快速恢复。247 收藏 -
哨兵通过“客观下线”(ODOWN)判断主节点真挂了:单个哨兵连不上仅为主观下线(SDOWN),需至少quorum个哨兵达成一致才触发ODOWN;哨兵间用SENTINELis-master-down-by-addr命令确认,非心跳广播,网络分区可能导致结论不一。244 收藏 -
DEL命令清空List最快,时间复杂度O(1),原子且单次往返;LTRIM仅在小List中可用,O(N)且保留key;禁用LPOP循环,避免阻塞与残留;清空前需TYPE校验类型。244 收藏 -
LATENCYDOCTOR无法诊断atop导致的毛刺,因其只监控Redis内部延迟(如事件循环、命令执行、AOF写入),而atop-R读取/proc/pid/smaps触发的内核页表锁争用发生在内核态,Redis用户态线程无法感知。243 收藏 -
Redis客户端重连易打挂新主库,因默认“失败即重试”导致连接风暴;需配置指数退避+随机抖动(如Lettuce用ExponentialBackoffRetry.withJitter)、Go端自定义DialContext重试逻辑,并控制初始延迟50–100ms、最大延迟≤3s、重试8–12次。239 收藏 -
Redis发布订阅卡顿主因是客户端消费能力不足或连接资源耗尽,而非Redis服务端性能瓶颈;需隔离连接池、改用异步驱动+批处理+超时熔断,并在需可靠性时迁移到Stream。239 收藏 -
RedisPub/Sub不适用于金融交易场景,因其纯内存、无持久化、无确认机制,导致消息必然丢失;集群下无全局顺序且不支持事务,应改用Streams或Kafka。237 收藏