redis开启日志保存180天

机器清单

129:6.2.13

134:6.2.13/7.0.2

#备份旧容器
# 129 服务器
docker exec redis6.2.13 redis-cli -a Cjxx-2023 SAVE
# 134 服务器
docker exec redis6.2.13 redis-cli -a Cjxx-2023 SAVE
docker exec redis7.0.2 redis-cli -a TaiYuan135 SAVE
cp -a /home/data/taiyuan/redis6.2.13/ /home/data/taiyuan/redis6.2.13-new/
cp -a /home/data/taiyuan/redis7.0.2/ /home/data/taiyuan/redis7.0.2-new/

第一步:修改配置文件(sed 命令)

# Redis 6.2.13 - 修改日志部分配置
# 修改 loglevel 为 notice
sed -i 's/^loglevel .*/loglevel notice/g' \
/home/data/taiyuan/redis6.2.13-new/conf/redis.conf
#指定logfile文件
sed -i 's|^logfile ""|logfile "/var/log/redis/redis.log"|g' \
/home/data/taiyuan/redis6.2.13-new/conf/redis.conf
#修改默认禁止远程连接为允许
sed -i 's|^bind 127.0.0.1|bind 0.0.0.0|g' /home/data/taiyuan/redis6.2.13-new/conf/redis.conf
sed -i 's|^protected-mode yes|protected-mode no|g' /home/data/taiyuan/redis6.2.13-new/conf/redis.conf

#cat conf/redis.conf | grep -E "^bind|^protected-mode"
#bind 0.0.0.0
#protected-mode no
# 验证
grep -E "^loglevel|^logfile" /home/data/taiyuan/redis6.2.13-new/conf/redis.conf



# Redis 7.0.2 - 修改日志部分配置
# 修改 loglevel 为 notice
sed -i 's/^loglevel .*/loglevel notice/g' \
/home/data/taiyuan/redis7.0.2-new/conf/redis.conf
sed -i 's|^logfile ""|logfile "/var/log/redis/redis.log"|g' \
/home/data/taiyuan/redis7.0.2-new/conf/redis.conf
# 验证
grep -E "^loglevel|^logfile" /home/data/taiyuan/redis7.0.2-new/conf/redis.conf

第二步:创建宿主机存放日志的目录

# 创建 Redis 6.2.13 日志目录
mkdir -p /home/data/taiyuan/redis6.2.13-new/logs
# 设置权限
chmod 777 /home/data/taiyuan/redis6.2.13-new/logs

# 创建 Redis 7.0.2 日志目录
mkdir -p /home/data/taiyuan/redis7.0.2-new/logs
# 设置权限
chmod 777 /home/data/taiyuan/redis7.0.2-new/logs

第三步:验证修改

# 验证 Redis 6.2.13 配置
echo "=== Redis 6.2.13 logfile 配置 ==="
grep -E "^loglevel|^logfile" /home/data/taiyuan/redis6.2.13-new/conf/redis.conf

# 验证 Redis 7.0.2 配置
echo "=== Redis 7.0.2 logfile 配置 ==="
grep -E "^loglevel|^logfile" /home/data/taiyuan/redis7.0.2-new/conf/redis.conf

由于启动命令中没有指定配置文件,所以即使修改了挂载的配置文件也不会生效日志配置,只能重新创建容器(明确指定配置文件)

    "Args": [
      "--requirepass",
      "Cjxx-2023"

第四步:重建容器

#停止并删除旧容器
# 1. 停止容器
#docker stop redis6.2.13
# 2. 删除容器
#docker rm redis6.2.13
# 3. 验证容器已删除
#docker ps -a | grep redis6.2.13



#创建新容器(使用配置文件启动)
129:
# Redis 6.2.13
docker run -d \
 --name redis6.2.13-new \
 --restart unless-stopped \
 -p 6381:6379 \
 -v /home/data/taiyuan/redis6.2.13-new/conf/redis.conf:/etc/redis/redis.conf \
 -v /home/data/taiyuan/redis6.2.13-new/data:/data \
 -v /home/data/taiyuan/redis6.2.13-new/logs:/var/log/redis \
redis:6.2.13 \
redis-server /etc/redis/redis.conf --requirepass Cjxx-2023

134:
# Redis 6.2.13
docker run -d \
 --name redis6.2.13-new \
 --restart unless-stopped \
 -p 6383:6379 \
 -v /home/data/taiyuan/redis6.2.13-new/conf/redis.conf:/etc/redis/redis.conf \
 -v /home/data/taiyuan/redis6.2.13-new/data:/data \
 -v /home/data/taiyuan/redis6.2.13-new/logs:/var/log/redis \
redis:6.2.13 \
redis-server /etc/redis/redis.conf --requirepass Cjxx-2023

# Redis 7.0.2
docker run -d \
 --name redis7.0.2-new \
 --restart unless-stopped \
 -p 6382:6379 \
 -v /home/data/taiyuan/redis7.0.2-new/conf/redis.conf:/etc/redis/redis.conf \
 -v /home/data/taiyuan/redis7.0.2-new/data:/data \
 -v /home/data/taiyuan/redis7.0.2-new/logs:/var/log/redis \
redis-local:7.0.2 \
redis-server /etc/redis/redis.conf

第五步:重建挂载后验证日志是否正常写入

# Redis 6.2.13
#验证6.2.13
docker exec -it redis6.2.13-new redis-cli -a Cjxx-2023 CONFIG GET loglevel
docker exec -it redis6.2.13-new redis-cli -a Cjxx-2023 CONFIG GET logfile

#验证7.0.2
docker exec redis7.0.2-new redis-cli -a TaiYuan135 CONFIG GET loglevel

# 检查 Redis 6.2.13 日志
docker exec redis6.2.13-new bash
tail -f /var/log/redis.log

# 检查 Redis 7.0.2 日志
docker exec redis7.0.2-new bash
tail -f /var/log/redis.log
image-20260114142041997

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部