所有从库的连接在主库上是独立的,也就是说每个从库 OutputBuffer 占用的内存空间也是独立的,那么主从复制消耗的内存就是所有从库缓冲区内存大小之和 。如果我们设定从库的 client-output-buffer-limit 为 1GB,如果有三个从库,则在主库上可能会消耗 3GB 的内存用于主从复制 。另外,真实环境中从库的数量不是确定的,这也导致 Redis 实例的内存消耗不可控 。
from: https://mp.weixin.qq.com/s/UlHksrqFq0yfKh1uMFvYNg 作者:shooterIT
6.2 OutputBuffer 拷贝和释放的堵塞问题
- ReplicationBacklog 的限制
- OutputBuffer 拷贝和释放的堵塞问题
6.3 解决方案:共享复制缓冲区
文章插图
具体方案请看这里:https://mp.weixin.qq.com/s/UlHksrqFq0yfKh1uMFvYNg 作者:shooterIT
七、参考
- https://redis.io/docs/manual/replication/ redis 复制功能
- https://mp.weixin.qq.com/s/a4JTKKTCEyz1W0FIF5fVZA Redis 主从复制的演进历程与百度实践 - 百度
- https://mp.weixin.qq.com/s/UlHksrqFq0yfKh1uMFvYNg Redis 7.0 共享复制缓冲区的设计与实现-ShooterIT
- 《Redis设计与实现》
经验总结扩展阅读
- flinksql读写redis
- 追求性能极致:Redis6.0的多线程模型
- 水银温度计用之前要甩一甩吗 体温计不甩量的体温会怎么样
- spring boot集成redis基础入门
- CentOS 7.9 安装 redis-6.2.0
- Redis实现布隆过滤器解析
- 242的身高可以扣篮吗
- 18-基于CentOS7搭建RabbitMQ3.10.7集群镜像队列+HaProxy+Keepalived高可用架构
- 深入底层C源码 Redis核心设计原理
- Redis高并发分布式锁详解