查找 redis-cli 的位置
find / -name redis-cli
建议创建软链接:
ln -s /usr/local/redis-8.0/bin/redis-cli /usr/bin/redis-cli
连接到 Redis CLI
redis-cli
允许 Redis 在保存快照失败时继续写入数据。
config set stop-writes-on-bgsave-error no
验证
config get stop-writes-on-bgsave-error
按 CTRL+D 退出
永久生效
sed -i 's/^stop-writes-on-bgsave-error yes/stop-writes-on-bgsave-error no/' /usr/local/redis-8.0/redis.conf
优化设置
假设服务器内存为8G
# 设置内存上限
redis-cli config set maxmemory 3gb
# 设置内存淘汰策略
redis-cli config set maxmemory-policy allkeys-lru
# 适度提高采样精度
redis-cli config set maxmemory-samples 10
# 永久保存配置
redis-cli config rewrite
启用主动碎片整理
# 更保守的生产环境配置
redis-cli config set activedefrag yes
redis-cli config set active-defrag-threshold-lower 10 # 10%碎片率才开始
redis-cli config set active-defrag-threshold-upper 100
redis-cli config set active-defrag-ignore-bytes 100mb # 100MB以上才处理
redis-cli config set active-defrag-cycle-min 1 # 最小1% CPU
redis-cli config set active-defrag-cycle-max 25 # 最大25% CPU
# 保存当前配置到配置文件
redis-cli config rewrite
查看碎片
redis-cli info memory | grep -E "(used_memory_human|used_memory_rss_human|mem_fragmentation_ratio)"
如果碎片整理不生效,直接清理
# 直接清空是最快的解决方案
redis-cli flushall
# 立即检查效果
redis-cli info memory | grep -E "(used_memory_human|used_memory_rss_human|mem_fragmentation_ratio)"