redis配置和数据目录迁移方法
将 Redis 数据目录改为 /data/redis_data/
1. 创建目录并设置权限
# 创建目录 sudo mkdir -p /data/redis_data # 设置 redis 用户权限(重要!) sudo chown redis:redis /data/redis_data sudo chmod 750 /data/redis_data
2. 修改 Redis 配置
sudo vi /etc/redis/redis.conf找到并修改以下配置:
# 修改数据目录 dir /data/redis_data # 确保持久化配置正确 # RDB 文件名(保持默认) dbfilename dump.rdb # 1. RDB 持久化(默认已开启,定期快照) save 900 1 # 900秒内至少1个key变化就保存 save 300 10 # 300秒内至少10个key变化就保存 save 60 10000 # 60秒内至少10000个key变化就保存 # 2. AOF 持久化(推荐开启,实时记录) appendonly yes # 开启AOF appendfsync everysec # 每秒同步一次(平衡性能和安全) auto-aof-rewrite-percentage 100 # AOF文件增长100%时自动重写 auto-aof-rewrite-min-size 64mb # AOF文件最小64MB才触发重写 # 3. 内存上限(防止OOM) maxmemory 256mb # 根据实际调整,建议系统内存的1/4 maxmemory-policy allkeys-lru # 内存满时淘汰最少使用的key appendfsync everysec # 日志文件也可以改到 /data 下(可选) logfile /data/redis_data/redis-server.log
3. 迁移现有数据(如果有)
# 停止 Redis sudo systemctl stop redis-server # 移动现有数据文件(如果存在) sudo mv /var/lib/redis/dump.rdb /data/redis_data/ 2>/dev/null sudo mv /var/lib/redis/appendonly.aof /data/redis_data/ 2>/dev/null # 确保权限正确 sudo chown -R redis:redis /data/redis_data/
有时 systemd 也会限制服务的写入路径:
vi /lib/systemd/system/redis-server.service
在文件中找到 [Service] 部分下,添加:
[Service] # 原有配置... ReadWritePaths=-/data/redis_data
保存后
sudo systemctl daemon-reload # 重启 Redis sudo systemctl restart redis-server
