*Redis Docker 安装指南

使用 Docker 运行 Redis 是最快捷、最跨平台的安装方式,适合开发、测试和快速部署。

*前置条件

  • 已安装 Docker
  • Windows 用户需确保 Docker 配置为运行 Linux 容器

*快速启动

*启动 Redis 容器

docker run -d --name redis -p 6379:6379 redis:latest

参数说明:

  • -d:后台运行
  • --name redis:容器名称
  • -p 6379:6379:将主机的 6379 端口映射到容器的 6379 端口
  • redis:latest:使用最新版本的 Redis 镜像

*使用指定版本

docker run -d --name redis -p 6379:6379 redis:8.0

*连接 Redis

从容器内部连接:

docker exec -it redis redis-cli

从主机连接(如果已安装 redis-cli):

redis-cli -h 127.0.0.1 -p 6379

*使用自定义配置文件

默认情况下,Redis Docker 容器使用内置配置。可以通过以下方式使用自定义配置:

*方式一:通过 docker run 挂载配置

docker run -v /myredis/conf:/usr/local/etc/redis --name myredis redis redis-server /usr/local/etc/redis/redis.conf

其中 /myredis/conf/ 是本地包含 redis.conf 的目录。

*方式二:自定义 Dockerfile

创建 Dockerfile:

FROM redis
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

构建并运行:

docker build -t myredis .
docker run -d --name myredis -p 6379:6379 myredis

注意:映射的目录需要可写,因为 Redis 可能需要创建额外的配置文件或重写现有配置。

*数据持久化

默认情况下,容器删除后数据会丢失。使用 Docker Volume 持久化数据:

docker run -d --name redis   -p 6379:6379   -v redis-data:/data   redis:latest

或者挂载本地目录:

docker run -d --name redis   -p 6379:6379   -v /host/path/to/data:/data   redis:latest

*启用 AOF 持久化

docker run -d --name redis   -p 6379:6379   -v redis-data:/data   redis:latest   redis-server --appendonly yes

*使用密码认证

docker run -d --name redis   -p 6379:6379   redis:latest   redis-server --requirepass "your_password"

连接时需要认证:

docker exec -it redis redis-cli -a "your_password"

*Docker Compose 配置

创建 docker-compose.yml:

version: '3.8'
services:
  redis:
    image: redis:8.0
    container_name: redis
    ports:
      - "6379:6379"
    volumes:
      - redis-data:/data
      - ./redis.conf:/usr/local/etc/redis/redis.conf
    command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes
    restart: unless-stopped

volumes:
  redis-data:

启动:

docker-compose up -d

*常用 Docker 命令

# 查看运行中的容器
docker ps

# 查看 Redis 日志
docker logs redis

# 停止容器
docker stop redis

# 启动容器
docker start redis

# 重启容器
docker restart redis

# 删除容器
docker rm redis

# 进入容器 shell
docker exec -it redis /bin/sh

# 查看容器资源使用
docker stats redis

*网络配置

*使用自定义网络

# 创建网络
docker network create redis-net

# 运行 Redis
docker run -d --name redis --network redis-net redis:latest

# 运行应用容器(同一网络内可通过容器名访问)
docker run -d --name myapp --network redis-net myapp-image

在 myapp 容器中,可通过 redis:6379 访问 Redis。

*多实例部署

# 主节点
docker run -d --name redis-master -p 6379:6379 redis:latest

# 副本节点
docker run -d --name redis-replica -p 6380:6379 redis:latest   redis-server --replicaof redis-master 6379

注意:如果副本和主节点在同一 Docker 网络中,可以使用容器名作为主机名。

*生产环境注意事项

  1. 内存限制:使用 Docker 的 --memory 选项限制容器内存
  2. CPU 限制:使用 --cpus 选项限制 CPU 使用
  3. 日志管理:配置日志驱动和轮转策略
  4. 安全:不要暴露 Redis 端口到公网,使用 Docker 网络隔离
  5. 监控:集成 Redis 监控工具(如 Redis Insight)
docker run -d --name redis   -p 127.0.0.1:6379:6379   --memory=2g   --cpus=2   -v redis-data:/data   --restart=unless-stopped   redis:latest