-
min-slaves-to-write作用是当在线且延迟≤min-slaves-max-lag的从库数量不足时,主库主动拒绝写命令以保障数据安全;但因不校验从库是否真正落盘、主库缓冲区数据未发送、diskless复制期间内存积压等原因仍可能丢数据。
-
RedisPub/Sub超时主因是TCP连接中断或服务端阻塞,需独立配置订阅连接、启用tcp-keepalive、禁用中间设备断连,并监控blocked_clients与slowlog。
-
必须同时排除RedisAutoConfiguration和RedisRepositoriesAutoConfiguration,否则因后者依赖redisTemplate而启动失败;exclude参数需传入Class数组,配置文件中须正确书写全限定名并避免缩进错误,且需清理残留Redis属性和手动Bean。
-
Redis发布订阅的热Key本质是频道成为单点瓶颈,因频道由全局字典维护、无法分片,需通过语义拆分(业务/时间/用户维度)+客户端软负载(轮询/随机/一致性哈希)+分层设计(Pub/Sub仅发轻量通知)协同优化。
-
<p>SCAN在Redis集群中不能扫全量key,因为其仅作用于当前连接节点,需手动遍历所有主节点;应通过CLUSTERNODES筛选master节点,用SCAN0MATCH*COUNT1000逐节点扫描并去重校验。</p>
-
Redis6.0的多线程(io-threads)不参与主从同步,因其复制连接走专用路径,绕过I/O线程调度;真正瓶颈在于RDB生成阻塞、从节点CPU解析、网络带宽及repl-backlog过小导致频繁全量同步。
-
GEODIST返回null或0主因是两个member不在同一key的Geo集合中;必须同属一个SortedSet,且需显式指定单位(m/km/mi/ft),member名含空格须加引号,跨key计算不支持。
-
repl-timeout应设为P99RTT的2~3倍,如P99RTT为120ms则建议30秒;需协同调整repl-backlog-size、repl-backlog-ttl和tcp-keepalive,并验证sync_partial_ok上升及master_link_status稳定。
-
根本原因是MOVE命令迁移大Key时需原子性搬运整个value并阻塞slot读写;应通过业务层拆分(如SCAN+HSCAN)、人工slot迁移及提前识别大Key来解决,而非依赖reshard。
-
缓存雪崩主因是大量key过期时间高度趋同,需通过扫描TTL、监控expired_keys曲线及检查写入逻辑验证;应采用SETEX或SET...EX原子命令,在基础过期时间上叠加5%–20%随机偏移,并确保所有写入路径(含定时任务、MQ、后台)均覆盖随机化。
-
replica-priority为0表示从库禁止被选为新主,即使唯一存活也会导致故障转移失败;哨兵依据从库INFOREPLICATION中上报的值决策,而非本地配置。
-
彻底禁用RDB自动触发需注释或设为save"",重启或CONFIGREWRITE后CONFIGGETsave返回["save",""],且rdb_changes_since_last_save持续增长即生效。
-
Redis7的Multi-PartAOF是将写操作分散到多个小文件(如.base.rdb和.incr.aof)的机制,本质区别在于重写不再依赖全量内存快照和fork子进程,而是通过异步追加与增量合并实现,内存占用稳定在几十MB。
-
Redis原生SINTER不支持带权重或条件过滤的交集计算,因其仅做纯元素匹配;需用Lua脚本在服务端原子执行复杂逻辑,但须防范阻塞、性能与维护风险。
-
扩容易触发缓存雪崩主因是reshard迁移打破key分布与失效节奏,导致大量key集中过期及请求穿透;须在写入阶段强制采用setex+随机TTL(base_ttl±15%~25%variance),禁用固定TTL与热点key长TTL,迁移期改maxmemory-policy为noeviction,并用--threshold1细粒度迁移。