版本:
redis-3.2.9
部署:
5台64G内存的物理机,每台机器启动2个redis进程组成5主5备集群,每台机器1个主1个备,并且错开互备。
问题:
发现redis进程占用内存高达40G,而且全是备进程。尝试通过重启进程方式释放内存,但进入复制死循环,报如下所示错误:
for lack of backlog (Slave request was: 51875158284)
通过网上查找资料,修改client-output-buffer-limit和repl-timeout值,问题未能得到解决,仍然报for lack of backlog,并仍然循环复制。
move备进程的data目录,但保留nodes.conf文件,然后再重启,这次重启成功。采取同样方法处理其它备进程,同样成功,内存同样降到和主进程接近的大小10G。
待分析:为何备进程占用的内存是它的主进程的4倍(分别40G和10G)?除了上述方法外,是否有其它更安全可靠的释放办法?
相关文章
- 部署Redis集群
- 【Redis已解决】SpringBoot连接RedisERR Client sent AUTH, but no password is set
- Redis集群介绍及测试思路
- Redis集群介绍及测试思路
- Redis集群的最大槽数为什么是16384个?
- Redis 如何实现库存扣减操作和防止被超卖?
- SpringBoot 结合RabbitMQ与Redis实现商品的并发下单【SpringBoot系列12】
- redis 存储一个map 怎么让map中其中一个值设置过期时间,而不是过期掉整个map?
- [SpringBoot] 解决Redis相关问题
- 【Redis-缓存工具类:缓存穿透,缓存击穿,缓存雪崩】