Redis的Docker安装

在 Docker 中部署 Redis 非常简单,且便于管理和迁移。以下是详细的操作指南,包括基础部署、持久化配置、密码设置及日常管理:

一、拉取 Redis 镜像

从 Docker Hub 拉取官方 Redis 镜像,可指定版本(如6.27.0,默认拉取latest最新版):

bash

# 拉取最新版
docker pull redis

# 拉取指定版本(如6.2)
docker pull redis:6.2

验证拉取结果:

bash

docker images | grep redis
# 输出示例:redis   6.2   xxxxxxxx   1 week ago   113MB

二、基础部署:启动 Redis 容器

1. 简单启动(无持久化,适合测试)

bash

docker run -d \
  --name redis \
  -p 6379:6379 \
  --restart=always \
  redis:6.2
2. 带持久化的启动(生产环境推荐)

Redis 默认数据存储在内存中,容器重启后数据会丢失。需通过数据卷挂载实现持久化(将 Redis 数据目录映射到主机):

bash

docker run -d \
  --name redis \
  -p 6379:6379 \
  -v /data/redis:/data \  # 挂载数据目录(容器内/data → 主机/data/redis)
  --restart=always \
  redis:6.2 \
  redis-server --appendonly yes  # 开启AOF持久化(数据实时写入磁盘)
参数说明:
参数作用
--name redis容器名称(自定义)
-p 6379:6379端口映射(主机 6379 → 容器 6379,Redis 默认端口)
-v /data/redis:/data持久化数据:容器内/data(Redis 默认数据目录)映射到主机/data/redis
--restart=always容器退出时自动重启
redis-server --appendonly yes启动 Redis 服务并开启 AOF(Append Only File)持久化(数据变更实时写入文件)

三、高级配置:自定义 Redis 参数

如需设置密码、修改内存限制等,可通过两种方式配置:

方法 1:通过命令行参数(适合简单配置)

bash

docker run -d \
  --name redis \
  -p 6379:6379 \
  -v /data/redis:/data \
  --restart=always \
  redis:6.2 \
  redis-server \
  --appendonly yes \          # 开启AOF持久化
  --requirepass your_password \  # 设置连接密码(替换为你的密码)
  --maxmemory 1024mb \        # 限制最大内存为1GB
  --maxmemory-policy allkeys-lru  # 内存满时删除最近最少使用的键
方法 2:通过自定义配置文件(适合复杂配置)
  1. 创建配置文件:在主机创建redis.conf(可从Redis 官方配置模板下载修改),关键配置示例:

    conf

    appendonly yes               # 开启AOF持久化
    requirepass your_password    # 连接密码
    maxmemory 1024mb             # 最大内存
    maxmemory-policy allkeys-lru # 内存淘汰策略
    bind 0.0.0.0                 # 允许所有IP访问(容器内需开启,否则外部无法连接)
    
  2. 启动容器时挂载配置文件

    bash

    docker run -d \
      --name redis \
      -p 6379:6379 \
      -v /data/redis:/data \
      -v /etc/redis/redis.conf:/etc/redis/redis.conf \  # 挂载配置文件
      --restart=always \
      redis:6.2 \
      redis-server /etc/redis/redis.conf  # 指定使用挂载的配置文件
    

四、容器管理与操作

1. 连接 Redis 服务
  • 方式 1:通过容器内客户端连接

    bash

    # 进入容器
    docker exec -it redis /bin/bash
    
    # 连接Redis(若设置了密码,需输入密码)
    redis-cli
    127.0.0.1:6379> auth your_password  # 输入密码(若有)
    127.0.0.1:6379> set test "hello"    # 测试设置键值对
    127.0.0.1:6379> get test            # 读取键值
    
  • 方式 2:从主机直接连接

    bash

    # 需先在主机安装redis-cli(如Ubuntu:sudo apt install redis-tools)
    redis-cli -h 127.0.0.1 -p 6379 -a your_password
    
2. 查看容器状态与日志

bash

# 查看状态
docker ps | grep redis

# 查看实时日志
docker logs -f redis
3. 停止 / 重启 / 删除容器

bash

# 停止
docker stop redis

# 重启
docker restart redis

# 删除(需先停止)
docker rm redis

五、数据备份与恢复

由于已通过-v挂载数据卷,数据存储在主机/data/redis目录,直接备份该目录即可:

bash

# 备份数据(压缩为tar包)
tar -zcvf /backup/redis_data_$(date +%Y%m%d).tar.gz /data/redis

# 恢复数据(替换现有数据,需先停止容器)
docker stop redis
rm -rf /data/redis/*  # 清空现有数据(谨慎操作)
tar -zxvf /backup/redis_data_20231017.tar.gz -C /  # 解压备份到根目录(会自动恢复到/data/redis)
docker start redis

六、常见问题解决

1. 外部无法连接 Redis
  • 检查端口映射是否正确:-p 6379:6379
  • 配置文件中是否绑定了0.0.0.0bind 0.0.0.0),避免只绑定127.0.0.1
  • 服务器防火墙是否开放 6379 端口(如 Ubuntu:sudo ufw allow 6379
2. 忘记 Redis 密码
  • 方法 1:停止容器,删除并重新创建(用新密码,数据卷不变则数据保留)
  • 方法 2:修改配置文件(移除requirepass行),重启容器后重置密码:

    bash

    # 进入容器后执行
    redis-cli
    127.0.0.1:6379> config set requirepass new_password  # 设置新密码
    
3. 数据卷权限错误

主机挂载目录权限不足导致 Redis 无法写入数据:

bash

# 修复权限(Redis容器内默认用户ID为999)
sudo chown -R 999:999 /data/redis
sudo chmod -R 755 /data/redis
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值