目录
异常一: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 = 0kernel.sysrq = 1net.ipv4.neigh.default.gc_stale_time = 120net.ipv4.conf.all.rp_filter = 0net.ipv4.conf.default.rp_filter = 0net.ipv4.conf.default.arp_announce = 2net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_announce = 2net.ipv4.tcp_max_tw_buckets = 5000net.ipv4.tcp_syncookies = 1net.ipv4.tcp_max_syn_backlog = 1024net.ipv4.tcp_synack_retries = 2vm.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