• 关闭RDB防止fork进程的内存溢出问题
save ""
appendonly=yes
  • 防止某个节点挂掉,整个cluster挂掉的问题
cluster-require-full-coverage no
  • 设置最大内存
maxmemory 

11453246122
  • 日志
logfile "./redis.log"
  • 防止因为磁盘同步,卡掉住进程的情况出现
no-appendfsync-on-rewrite yes
  • 内核修改,如果没开防火墙可以不设置这个
net.nf_conntrack_max = 1648576
  • 这个用来防止内存申请不到发生卡死的情况,很重要
vm.overcommit_memory=1

有三种方式修改内核参数,但要有root权限:

(1)编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效

(2)sysctl vm.overcommit_memory=1

(3)echo 1 > /proc/sys/vm/overcommit_memory

建议使用方法 1

  • thp redis warning要求关掉
echo never > /sys/kernel/mm/transparent_hugepage/enabled

同时写入rc.local,保证下次重启生效

  • 最大连接数要改一下,redis的warning会要求修改
net.core.somaxconn= 1024

编辑/etc/sysctl.conf ,增加 net.core.somaxconn= 1024,然后sysctl -p 使配置文件生效

  • 设置内存超出策略
    默认没有设置
allkeys-lru
  • BGREWRITEAOF 这个命令可以重写aof,因为aof长时间增量更新,导致越来越大,但是内存可能没这么大,所以可以用这个命令重写进行复制备份,恢复等

  • 内存吃紧的时候可以尝试手动去掉内存碎片

config set activedefrag yes
memory purge