Redis突发写压需绕开主线程或前置缓冲,主从架构下须按峰值写入×最长卡顿时间×安全系数计算client-output-buffer-limit硬限,软限设50%–70%,并配合读写分离、STREAM削峰、多级缓存及空值缓存TTL等综合防护。
Redis 本身不扛突发写压,读压靠架构分担,写压必须绕开主线程或前置缓冲——直接在主节点上硬扛高并发写入,等于主动触发雪崩。
主节点为每个从节点单独维护输出缓冲区(omem),一旦突发写入速率超过从节点消费能力,缓冲区堆积超限就会被强制断连,继而触发全量同步雪崩。
12MB/s,预估从节点最长卡顿 60s,安全系数取 1.5 → 至少设为 1200mb
50%–70%,软时限保持 60 秒,避免网络毛刺误杀连接redis-cli -h info replication | grep master_repl_offset 每秒采样两次,算出真实增量速率appendfsync always、单次返回大数据集(如 HGETALL)都会加速缓冲区溢出加 Redis 实例不如把读流量导到从节点——主节点只做写,从节点分担读,成本低、见效快,且避免集群跨槽操作的性能损耗。
3–5 个,用 replicaof 命令建立关系,不要依赖哨兵自动发现(故障时易漂移)repl-backlog-size 至少设为 100mb,否则网络抖动后从节点无法 PSYNC,只能全量同步info replication 查 slave_repl_offset 与 master_repl_offset 差值,持续 > 100MB 就该告警ReadFrom.SLAVE_PREFERRED,Jedis 需自行实现PUBLISH 是同步阻塞命令,向 5000 个订阅者发一次消息,延迟可能飙到 200ms+;更糟的是它不落盘、无 ACK、断连即丢,根本不是削峰设计。
STREAM:用 XADD orders * order_id 123 写入,再由后台 worker 用 XREADGROUP GROUP wg1 c1 COUNT 10 STREAMS orders > 拉取并 XACK
SUBSCRIBE 连接数极易打满:maxclients 默认 10000,但 2000+ 活跃订阅者就可能触发 ERR max number of clients reached
MessageListener 开新连接,必须显式复用连接,改用单连接多频道订阅:SUBSCRIBE ch1 ch2 ch3
PSUBSCRIBE alert.*,避免大量 SUBSCRIBE alert.error 分散频道耗尽连接随机过期只是基础,真正防住突发流量冲击,得靠多级拦截和异步兜底。
60s),否则穿透攻击会反复打穿 DBuser:1001 改成 user:1001:profile、user:1001:stats,避免单 key 成瓶颈最常被忽略的点是:突发流量从来不是单一维度的问题。写压、读压、订阅压、缓存失效压往往同时爆发,而 client-output-buffer-limit、repl-backlog-size、STREAM 的 pending list、本地缓存 TTL 这些参数,任何一个没对齐峰值场景,整条链路就会在压力下出现确定性断裂。
Tplink企业版路由器WiFi名称的默认设置介绍(Tplink企业版路由器WiFi名称的默认设置是什么)
Tplink路由器灯常亮无法上网的原因分析(如何解决Tplink路由器灯常亮无法上网的问题)
Tplink千兆企业级路由器自动重启的作用和优势介绍(如何设置Tplink千兆企业级路由器自动重启功能)
一根天线的tplink路由器有哪些(一根天线的Tplink路由器的特点和优势介绍)
tplink路由器外网访问不了nas(Tplink路由器外网访问NAS的原因分析)
Tplink无法搜到路由器的原因分析(如何解决Tplink无法搜到路由器的问题)