-
Redisbgsave时内存翻倍并非复制业务数据,而是fork触发COW:内核仅复制页表,写入时才拷贝物理页,导致RSS暴涨;典型信号是used_memory_rss/used_memory比值骤升至2.5+且latest_fork_usec>500ms。
-
在MySQL中创建包含所有可能约束的表可以通过以下步骤实现:1.使用AUTO_INCREMENT自动生成员工ID。2.应用NOTNULL确保必填字段不为空。3.使用UNIQUE确保邮箱地址唯一。4.设定CHECK约束确保工资大于0且名字和姓氏长度至少为2。5.设定PRIMARYKEY为employee_id。6.使用FOREIGNKEY引用departments表的department_id。7.创建INDEX提高last_name查询效率,这样可以确保数据的完整性和一致性。
-
redis-cli的monitor命令可实时打印所有指令但仅限调试环境,因性能开销大、无过滤能力、输出非结构化,生产环境应禁用;推荐用slowlog(设slowlog-log-slower-than为0)替代。
-
Redis客户端重连易打挂新主库,因默认“失败即重试”导致连接风暴;需配置指数退避+随机抖动(如Lettuce用ExponentialBackoffRetry.withJitter)、Go端自定义DialContext重试逻辑,并控制初始延迟50–100ms、最大延迟≤3s、重试8–12次。
-
新消费者收不到旧消息是因为XGROUPCREATE默认从最新偏移($)开始消费,不自动回溯;需显式指定起始ID0或用XREADGROUPSTREAMSmystream0补读,且必须及时XACK避免重复分配。
-
sentinelmonitor三要素(master-name、IP、port)必须准确,缺一不可,否则哨兵无法发现主从拓扑;quorum是触发投票的最小同意数,非哨兵总数;密码需三端一致(requirepass/masterauth/auth-pass),ACL还需配置masteruser;down-after-milliseconds宜设3000–5000ms防误判;启动前须确保主从就绪,否则从节点被误标sdown。
-
查哨兵进程资源需用ps和top实时监控CPU与内存,关注RSS突增、%CPU峰值及线性上涨;结合日志分析+sdown/+odown频次、INFOSENTINEL状态(如sentinel_tilt、sentinel_running_scripts)定位真实压力源。
-
Jedissubscribe()会阻塞线程,必须在独立线程中调用;onMessage()是唯一消息处理入口;连接断开需手动重试;RedisMessageListenerContainer需设phase为Integer.MIN_VALUE以早初始化;Pythonredis-py要判type再取data并解码;频道名推荐小写点分隔,禁用通配符滥用;订阅端须加健康检查与自动恢复。
-
要定位被淘汰的key,需监控evicted_keys增量、expired_keys飙升情况,并结合Redis7.0+的MEMORYUSAGE与OBJECTFREQ抽样分析;allkeys-lru不安全,应优先用volatile-lru/lfu;LFU更耗CPU因频次衰减更新;验证key是否频繁淘汰可用PFADD+PFCOUNT埋点统计。
-
布隆过滤器必须前置到请求入口,如Web中间件或API网关,在接触Redis或数据库前完成校验;冷启动需预热合法ID,误判率宜设为1%;空值缓存须存"NULL"字符串并设5–300秒短过期;参数校验需在网关/Controller层强校验;需监控空值占比与误判率并告警。
-
slowlog是Redis唯一实时捕获慢命令的机制,为内存环形缓冲区,仅记录执行耗时超阈值的命令,不包含网络延迟与排队时间;默认阈值10ms,建议调至5ms,slowlog-max-len建议设为1024,并需CONFIGREWRITE持久化。
-
Redis延迟高但CPU正常通常是网络丢包或抖动所致,表现为redis-cli--latency毛刺飙升、ping标准差>10ms或丢包率>0.1%,需用tcpdump抓包分析重传与ACK丢弃,并排查云环境安全组、NAT会话老化及内核TCP参数配置。
-
AOF重写加剧SSD寿命损耗,因其每次均全量生成新文件并原子替换,引发高频页擦除与搬移(写放大);频繁触发(如每小时2–3次)使SSD磨损加速,实测寿命比纯RDB缩短30%+。
-
redis-cli--clusterfix并非万能修复器,仅解决Slot被多节点声明的明确冲突,对Slot丢失、元数据错乱、nodes.conf未刷新等问题无效;它只比对并修正冲突项,不处理“看似合理实则失效”的条目。
-
客观下线(ODOWN)需多个哨兵通过Gossip协议交换信息并达成quorum共识;quorum是sentinel.conf中配置的最小同意数,非哨兵总数,设为1则退化为主观下线;哨兵间通过SENTINELis-master-down-by-addr命令探测,超时未响应将导致无法凑够quorum;Gossip异步、无中心、带超时,不保证强一致,以换取快速故障发现与低带宽开销;验证ODOWN应使用SENTINELmasters检查flags是否含odown,而非仅依赖+sdown日志。