-
可行但仅适用于轻量场景;必须用EVAL执行Lua脚本原子完成“取+删”或“取+标记”,避免LPOP+DEL竞态导致重复消费或消息丢失。241 收藏 -
replica-priority为0表示从库禁止被选为新主,即使唯一存活也会导致故障转移失败;哨兵依据从库INFOREPLICATION中上报的值决策,而非本地配置。312 收藏 -
String类型在LRU驱逐场景下内存效率低,因其每个key和value均独立占用redisObject+SDS结构,导致对象头冗余高、驱逐粒度粗;而Hash等结构共享key对象头、支持ziplist压缩,内存利用率高40%~60%。233 收藏 -
LPUSH+BRPOP构成FIFO阻塞队列,兼容Redis2.0+;但消费失败会导致消息丢失,适合允许少量丢失的场景,强可靠性需求应改用Stream。363 收藏 -
Redis集群启动失败、节点无法握手、CLUSTERNODES显示fail或connecting,大概率是Bus端口(clientport+10000)被占用;需确保各节点clientport与其对应bus端口区间互不重叠,如7000→17000,则下一节点clientport至少为17001。275 收藏 -
Redis卡顿主因是内存满时同步驱逐bigkey,导致主线程阻塞;应启用lazyfree-lazy-eviction、改DEL为UNLINK、用--bigkeys定位大key,并依访问模式选allkeys-random或allkeys-lfu淘汰策略。306 收藏 -
Redis的String类型加剧内存碎片是因为频繁SET/GET/APPEND导致jemalloc中大小不一的内存块反复分配释放,旧块无法复用而残留为碎片,表现为mem_fragmentation_ratio>1.5且used_memory_rss远大于used_memory。230 收藏 -
RedisSentinel进程挂了由systemd兜底重启,因其默认可用、配置简洁、日志集成好;需配置Restart=always、明确--sentinel参数、检查端口绑定、配置语法及目录权限,并通过redis-cli验证哨兵实际工作状态。361 收藏 -
应先检查是否连接泄露,再调整maxclients:通过redis-cliclientlist确认连接是否持续增长,修复Jedis未close问题;若确需扩容,须同步调高系统ulimit-n并重启Redis。460 收藏 -
哨兵选主按slave-priority、复制偏移量、RunID三步筛选:优先过滤priority为0的节点;再比对offset,越大越优;最后按RunID字典序升序取首个。339 收藏 -
单纯靠频率限制无法防住缓存穿透,因其无法识别语义非法请求(如user_id=-1),且分布式攻击下单IP低频可绕过;限流仅作为兜底,需与布隆过滤器、空值缓存等联动,并结合多维特征精准识别恶意请求。380 收藏 -
appendfsyncalways会让Redis卡在磁盘上,因其每条命令都强制调用fsync()等待硬件确认落盘,使QPS被钉死在磁盘IOPS天花板;而everysec通过后台线程批量刷盘解耦主线程与I/O,大幅降低IOPS压力但引入秒级延迟毛刺。367 收藏 -
redis-cli--hotkeys是基于LFU采样的轻量热Key发现工具,需启用allkeys-lfu/volatile-lfu策略,返回最多32个相对高频key,frequency为归一化值,非实时精确计数,须结合objectfreq、monitor等交叉验证。196 收藏 -
dump.rdb文件越积越多是因为Redis默认不自动清理旧快照,每次bgsave生成新文件但保留旧文件,需依赖外部脚本按时间戳安全清理。344 收藏 -
集群模式下slave-read-onlyyes无效,因集群协议绕过主从配置;必须用readonly命令开启连接级只读,使从节点响应本主槽读请求。461 收藏