-
切换RedisPython客户端需同步更新依赖和初始化代码,仅安装新包不生效;redis-py不支持集群,redis-py-cluster已停更,应改用redis-py4.0+的RedisCluster;异步场景下aioredisv1与v2接口不兼容。
-
ZREVRANGE默认返回member(如商品ID),非score;需加WITHSCORES参数才同时返回member和score,结果为交替格式。
-
setIfAbsent不够安全,因其无法原子性设置过期时间,易导致锁永久不释放;Redis推荐用SETkeyvalueNXEXseconds一步完成,但SpringDataRedis老版本setIfAbsent不支持EX参数。
-
全量复制触发时,Redis主节点必须生成RDB文件,因为从节点初次连接或断连太久后无法仅靠增量命令追上主节点,主节点需将当前完整数据集打包成RDB文件传给从节点以保证状态一致。
-
<p>缓存雪崩主因是大量Key集中过期,解决需打散过期时间并避免全量失效;分片本身不防雪崩,但结合一致性哈希与分片ID固定偏移(如offset=shard_id*60)可强制错峰过期,比随机更可控。</p>
-
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仅发轻量通知)协同优化。
-
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、后台)均覆盖随机化。
-
彻底禁用RDB自动触发需注释或设为save"",重启或CONFIGREWRITE后CONFIGGETsave返回["save",""],且rdb_changes_since_last_save持续增长即生效。
-
Redis7的Multi-PartAOF是将写操作分散到多个小文件(如.base.rdb和.incr.aof)的机制,本质区别在于重写不再依赖全量内存快照和fork子进程,而是通过异步追加与增量合并实现,内存占用稳定在几十MB。
-
Redis原生SINTER不支持带权重或条件过滤的交集计算,因其仅做纯元素匹配;需用Lua脚本在服务端原子执行复杂逻辑,但须防范阻塞、性能与维护风险。