-
空值缓存TTL应设为60s~180s并配合业务SLA,禁用null直存而用"__NULL__"等明确标记,且必须与接口层参数校验、限流及定期清理协同使用。136 收藏 -
调大hash-max-ziplist-entries内存不降反升,因ziplist启用需同时满足entries、value长度及数据紧凑三条件;单个value超hash-max-ziplist-value即退化为hashtable。347 收藏 -
短连接在Redis中严重伤性能,因其每次需完整TCP握手、认证、DB切换与释放,局域网下单次开销达1–3ms,超GET命令5–10倍,并引发TIME_WAIT端口耗尽。181 收藏 -
根本原因是客户端将从节点视为独立服务端并为每个从节点创建独立连接池。开启读写分离后,Jedis/Lettuce会主动发现并连接所有从节点,导致连接数激增、从库负载过高;解决关键是禁用客户端拓扑发现,改用代理层统一入口或手动控制连接复用。254 收藏 -
Redis集群中Lua脚本不会触发传统死锁,但会因单线程执行而阻塞整个节点;无限循环脚本导致该节点所有命令超时,需通过CLIENTLIST、INFOcommandstats及CLUSTERNODES识别异常,并依赖lua-time-limit、计数器循环、客户端超时与限流等机制防控。473 收藏 -
必须同时排除RedisAutoConfiguration和RedisRepositoriesAutoConfiguration,否则因后者依赖redisTemplate而启动失败;exclude参数需传入Class数组,配置文件中须正确书写全限定名并避免缩进错误,且需清理残留Redis属性和手动Bean。323 收藏 -
Redis7的Multi-PartAOF是将写操作分散到多个小文件(如.base.rdb和.incr.aof)的机制,本质区别在于重写不再依赖全量内存快照和fork子进程,而是通过异步追加与增量合并实现,内存占用稳定在几十MB。309 收藏 -
AOF重写后文件变大是因为重写时仍会写入带过期时间但尚未过期的key,尤其高频短TTL的SET/EXPIREAT等指令堆积且无法压缩,导致AOF体积膨胀。186 收藏 -
网卡PPS打满是吞吐量上不去的常见原因,尤其在小key/value场景下,单请求虽仅60–100字节却生成独立TCP包,易使网卡达到硬件上限。195 收藏 -
bgsave不阻塞Redis主线程,因其fork后由子进程独立完成RDB生成,主线程立即恢复服务;卡顿仅发生在fork阶段,大内存实例页表复制开销显著。204 收藏 -
Redis集群写入失败需先确认是否真不可写:常见原因是客户端连只读节点或未处理ASK/MOVED重定向;检查CLUSTERNODES中fail?(疑似下线)或fail(客观下线)状态;CLUSTERFAILOVER仅在从节点、主节点在线、偏移量合规且非CLUSTERDOWN时生效;主节点宕机且无自动转移时,才需在健康从节点执行CLUSTERFAILOVERFORCE,并对旧主执行CLUSTERRESETHARD。293 收藏 -
SPOP是真正随机的,底层用Fisher-Yates变种算法对当前存在元素随机抽取;但因哈希表桶分布和短时随机种子偏差,可能感觉“不均匀”,非bug。250 收藏 -
RedisStream比PUB/SUB更适合做持久化队列,因其支持消息持久化、消费者组、ACK机制、唯一消息ID和按位置回溯;PUB/SUB纯内存广播,无存储、无堆积能力。384 收藏 -
SINTER是Redis中计算共同好友唯一靠谱、原子、高效的方式,它基于内存集合运算,自动选取最小集合优化性能,毫秒级返回结果,避免网络往返与客户端计算开销。430 收藏 -
RDB快照非实时落盘,依赖bgsave子进程异步生成,期间新写入数据不包含在本次快照中;AOF重写通过双缓冲保障新命令不丢失;混合持久化仅存储格式混合,写入仍按appendfsync策略执行。483 收藏