[docker系列] redis启动异常 overcommit_memory is set to 0 ,Fatal error loading the DB: Invalid argument 解决

目录

异常一:Fatal error loading the DB: Invalid argument. Exiting 

1. 操作: 找到dump.rdb的文件, 删除 

-> 在宿主机中执行指令

2. 异常分析:

3. 出现原因:

异常二: WARNING overcommit_memory is set to 0

1. 修改sysctl的配置 

2. 增加配置

3. 查看配置

异常三: The TCP backlog setting of 511 cannot be enforced

1. 与异常二前两步相同

2. 添加配置: 


异常一:Fatal error loading the DB: Invalid argument. Exiting 

1. 操作: 找到dump.rdb的文件, 删除 

-> 在宿主机中执行指令

find / -name 'dump.rdb'

2. 异常分析:

RDB持久化 剩下的dump.rdb版本太高, 容器无法读取启动

3. 出现原因:

redis容器删除的时候 不要忘记清空挂载目录 


异常二: WARNING overcommit_memory is set to 0

1. 修改sysctl的配置 

 vim /etc/sysctl.conf

2. 增加配置

vm.overcommit_memory = 1  

3. 查看配置

sysctl -p

vm.swappiness = 0
kernel.sysrq = 1
net.ipv4.neigh.default.gc_stale_time = 120
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
vm.overcommit_memory = 1

或者使用指令直接操作

检查系统的内存设置,确保overcommit_memory设置为1。

$ sudo sysctl vm.overcommit_memory
 

如果输出结果为vm.overcommit_memory = 0,则需要修改为1。 

$ sudo sysctl vm.overcommit_memory=1
 

 重启redis服务 

docker restart redis

如果仍然出现问题,请检查Redis配置文件中的maxmemory设置是否正确。 

异常三: The TCP backlog setting of 511 cannot be enforced

WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

1. 修改sysctl的配置 

 vim /etc/sysctl.conf

2. 增加配置

vm.overcommit_memory = 1  

3. 添加配置: 

net.core.somaxconn = 1024


查看docker 日志方式

docker container logs -f redis

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pingzhuyan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值