-
LPUSH+BRPOP不能直接做可靠循环队列,因为BRPOP阻塞等待导致无法自动重入,需外部调度;且List缺乏状态跟踪、幂等支持和消费确认机制,易丢任务或重复消费。132 收藏 -
AOF重写内存暴增主因是fork的Copy-on-Write机制触发页拷贝+重写缓冲区累积;可通过infomemory差值、日志、aof_pending_rewrite交叉定位;缓解需停自动触发、手动完成重写,并调优auto-aof-rewrite-percentage等参数缩短重写时长。305 收藏 -
延迟双删删的是第一次更新前删缓存、第二次更新DB后延迟再删缓存;前者防旧缓存命中,后者防主从同步期间脏读写入缓存。223 收藏 -
缓存击穿是热点key过期瞬间大量请求直击数据库,微服务中因多实例并发回源使DB压力放大N倍;需用原子SET命令加锁、逻辑过期替代永不过期、服务自治布隆过滤器并强同步更新。145 收藏 -
哨兵必须和业务走不同网卡,以避免业务流量干扰心跳包导致误判下线;需绑定专用网卡IP、隔离哨兵间通信、禁用DNS解析并校验hosts、防火墙等全链路配置。398 收藏 -
cluster-config-file由Redis集群节点在运行时自动写入,仅在槽分配完成、拓扑变化或重启恢复时更新,用于本地状态持久化而非手动配置。199 收藏 -
ZREVRANK返回nil最常见的原因是key不存在或member不在ZSet中;它只对已存在的member生效,且返回0-based排名。260 收藏 -
RedisLua脚本无法实现SCAN分页,因脚本无状态且无法维护游标;唯一可行方案是客户端驱动SCAN分页,Lua仅负责单次结果的模式匹配与截取。166 收藏 -
AOF重写加剧SSD寿命损耗,因其每次均全量生成新文件并原子替换,引发高频页擦除与搬移(写放大);频繁触发(如每小时2–3次)使SSD磨损加速,实测寿命比纯RDB缩短30%+。143 收藏 -
ConnectionTimeoutException通常是Lettuce客户端连接池新建连接超时所致,主因是网络、DNS、地址配置或防火墙问题,而非Redis故障;其默认connectTimeout为30秒,生产建议设为3~5秒。382 收藏 -
先看INFOCPU中used_cpu_sys是否单独飙升,若是则为连接层压力;若user和sys同步涨,再查cluster中migrating_slots/importing_slots是否非零,并结合客户端重试日志与抓包定位根因。292 收藏 -
RedisGEOHASH命令返回标准Base32编码的Geohash字符串数组,长度1-12位,即使单个成员也返回如["wx4g0b0j0r0"]的数组,需取首项;仅对GEOADD添加的成员有效,未添加则返回[nil]。144 收藏 -
不能。AOF是无时间戳的追加日志,不支持按时间点截断;需人工结合外部线索定位字节偏移或命令位置,再手动裁剪,并通过临时实例校验状态。407 收藏 -
Redis集群内网带宽消耗主因是Gossip协议心跳、拓扑同步和故障探测,走16379集群总线端口,不体现于客户端网络指标;需通过INFOreplication的repl_offset差值和INFOstats的instantaneous_input/output_kbps间接估算,异常时用redis-cli--clustercheck和tcpdump抓包分析。335 收藏 -
应优先使用pipeline批量发命令替代单条轮询,避免高RTT开销;对计数类操作用INCR/DECR原子增减;设值带过期统一用SET的EX/PX/NX参数;高频读不变Key应加客户端本地缓存。454 收藏