在 CentOS 上配置 Redis 内存,主要涉及 redis.conf 中的内存限制参数 以及 系统层面的一些优化。下面按常见场景说明。
通常是:
/etc/redis.conf
# 或
/etc/redis/redis.conf
编辑:
vi /etc/redis.conf
maxmemory 2gb
常见写法:
maxmemory 512mbmaxmemory 2gbmaxmemory 4g不配置
maxmemory时,Redis 会一直使用内存,直到系统 OOM。
当内存达到上限时的处理方式:
maxmemory-policy allkeys-lru
常用策略:
noeviction:不淘汰,写报错(默认)allkeys-lru:所有 key LRU 淘汰(最常用)volatile-lru:只淘汰带过期时间的 keyallkeys-random:随机淘汰volatile-ttl:优先淘汰快过期的✅ 推荐缓存场景:
maxmemory 2gb
maxmemory-policy allkeys-lru
systemctl restart redis
或
systemctl restart redis-server
查看是否生效:
redis-cli
CONFIG GET maxmemory
CONFIG GET maxmemory-policy
Redis 不建议使用 Swap:
swapoff -a
或调整:
sysctl vm.swappiness=1
CentOS 默认可能限制:
sysctl vm.overcommit_memory=1
写入:
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl -p
echo never > /sys/kernel/mm/transparent_hugepage/enabled
永久生效:
vi /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
redis-cli info memory
重点看:
used_memoryused_memory_humanmaxmemorymaxmemory 2gb
maxmemory-policy allkeys-lru
如果你愿意,可以告诉我:
我可以给你一份更精确的配置方案。