-
min-slaves-to-write是主从切换丢数据时首要排查项,它控制主节点在合格从节点不足时拒绝写入,但需配合min-slaves-max-lag和真实复制状态(state=online、lag≤阈值)才生效。249 收藏 -
SLAVEOFNOONE是断连+角色重置的原子操作:终止复制连接、清空主节点状态、将role改为master,运行时生效但重启回退,不清理数据、不通知其他节点。247 收藏 -
根本原因是sentineldown-after-milliseconds阈值过短,而主库执行耗时Lua脚本导致PING响应超时,哨兵误判为主观下线;典型表现为INFOreplication正常但日志频繁出现+sdown又快速恢复。247 收藏 -
DEL命令清空List最快,时间复杂度O(1),原子且单次往返;LTRIM仅在小List中可用,O(N)且保留key;禁用LPOP循环,避免阻塞与残留;清空前需TYPE校验类型。244 收藏 -
LATENCYDOCTOR无法诊断atop导致的毛刺,因其只监控Redis内部延迟(如事件循环、命令执行、AOF写入),而atop-R读取/proc/pid/smaps触发的内核页表锁争用发生在内核态,Redis用户态线程无法感知。243 收藏 -
Redis发布订阅卡顿主因是客户端消费能力不足或连接资源耗尽,而非Redis服务端性能瓶颈;需隔离连接池、改用异步驱动+批处理+超时熔断,并在需可靠性时迁移到Stream。239 收藏 -
RedisPub/Sub不适用于金融交易场景,因其纯内存、无持久化、无确认机制,导致消息必然丢失;集群下无全局顺序且不支持事务,应改用Streams或Kafka。237 收藏 -
Redis内存未立即下降是因为采用惰性+定期双机制清理过期key,定期清理受hz参数控制;hz越大扫描越频繁但CPU开销越高,默认10,调至100可加速清理,超100收益递减且可能引发高CPU。234 收藏 -
会,Redis主从同步常打爆网卡,尤其跨机房、大key迁移或全量复制时;因Redis无带宽限速参数,需用tc对主节点6379端口出向流量限速,并调大repl-timeout防超时断连。233 收藏 -
RedisAOF是将写命令追加到文件以实现持久化,但并非所有场景都适用:appendfsync配置影响安全性与性能,everysec是线上折中选择,always性能差,no不可靠;AOF重写可能耗资源,切换时需检查文件完整性、路径及时间戳。232 收藏 -
OBJECTFREQ返回key的LFU近似频次(0–255),多次GET后应上升;频次非线性增长、有衰减、依赖serverCron更新,需确认Redis≥4.0、maxmemory-policy正确配置且内存压力存在。232 收藏 -
单靠Redis命令无法保证双写缓存原子性,因SET和DEL是两个独立命令,中间可能被其他客户端插入操作,导致缓存与DB不一致;Lua脚本在服务端单线程原子执行,可规避竞态。232 收藏 -
RedisBitmap更新必须用Pipeline,因单次SETBIT网络开销大,10万次独立调用耗时超8秒,Pipeline可压至300ms内,并需显式execute()提交;offset须紧凑映射,key命名要可排序,BITOP前应校验长度,回滚靠双写+原子RENAME。227 收藏 -
LTRIM是限制RedisList长度的唯一可靠方式,因其原子性、精准截断和内存即时释放特性;必须配合LPUSH使用,错误参数会清空列表,高并发下推荐Lua脚本保障原子性。225 收藏 -
哨兵选主失败或频繁切换的根本原因是时钟偏差过大或网络单向隔离;需先用ntpstat和chronyctracking检查时钟同步,再用tcpdump验证26379端口双向通信,最后才调整哨兵参数。224 收藏