Redis容器化(Docker)

Redis容器化(Docker)

生产级部署(带持久化 + 自定义配置)

生产环境中需要保证数据持久化、自定义配置(如密码、内存限制),推荐这种方式。

1,拉取 Redis 8 官方镜像

bash 复制代码
docker pull redis:8

2,创建本地目录(用于挂载配置和数据)

bash 复制代码
# 创建配置目录和数据目录
mkdir -p /opt/redis8/{conf,data}
chmod 777 /opt/redis8/data  # 赋予写入权限,避免权限问题

3,修改redis.conf 配置文件

复制一份redis.conf到/opt/redis8/conf目录下,然后修改以下配置:

c 复制代码
# 基础配置
bind 0.0.0.0          # 允许所有IP访问(容器内必须配置,否则外部无法连接)
protected-mode no     # 关闭保护模式(配合bind 0.0.0.0使用)
port 6379             # 端口
daemonize no          # 禁止后台运行(Docker容器内必须为no,否则容器会退出)
requirepass 123456    # 设置密码(必填,生产环境务必修改)
timeout 0             # 超时时间

# 持久化配置(RDB+AOF组合,保证数据安全)
save 900 1            # 900秒内至少1个键修改则触发RDB快照
save 300 10           # 300秒内至少10个键修改则触发RDB快照
save 60 10000         # 60秒内至少10000个键修改则触发RDB快照
rdbcompression yes    # 压缩RDB文件
dbfilename dump.rdb   # RDB文件名
dir /data             # 数据存储目录(对应容器内的/data)

appendonly yes        # 开启AOF持久化
appendfilename "appendonly.aof"  # AOF文件名
appendfsync everysec  # 每秒同步一次AOF(兼顾性能和数据安全)
auto-aof-rewrite-percentage 100  # AOF文件增长100%时重写
auto-aof-rewrite-min-size 64mb   # AOF文件最小64MB才重写

4,启动容器(挂载配置 + 数据)

bash 复制代码
docker run -d \
  --name redis8 \
  --restart always \  # 容器异常退出时自动重启
  -p 6379:6379 \
  -v /opt/redis8/conf/redis.conf:/etc/redis/redis.conf \  # 挂载配置文件
  -v /opt/redis8/data:/data \  # 挂载数据目录(持久化)
  -m 2g \  # 限制Redis最大使用内存2GB(可选,根据服务器配置调整)
  --sysctl net.core.somaxconn=511 \  # 优化TCP连接参数
  redis:8 redis-server /etc/redis/redis.conf  # 指定配置文件启动

验证部署是否成功

bash 复制代码
# 1. 查看容器状态
docker ps | grep redis8

# 2. 进入容器连接Redis
docker exec -it redis8 redis-cli

# 3. 输入密码(配置文件中设置的123456)
127.0.0.1:6379> AUTH 123456
OK

# 4. 测试写入数据
127.0.0.1:6379> SET test "docker-redis8"
OK

# 5. 读取数据
127.0.0.1:6379> GET test
"docker-redis8"

# 6. 退出容器
127.0.0.1:6379> exit

常用运维命令

bash 复制代码
# 查看Redis日志
docker logs -f redis8

# 停止容器
docker stop redis8

# 启动容器
docker start redis8

# 重启容器
docker restart redis8

# 删除容器(需先停止)
docker rm redis8

# 进入容器bash
docker exec -it redis8 /bin/bash

总结
生产部署 :核心是挂载 配置文件 和 数据目录,开启持久化(RDB+AOF),设置密码和自动重启;
关键配置 :容器内必须设置 bind 0.0.0.0 和 daemonize no,否则会导致外部无法连接或容器退出。

通过以上方案,你可以快速完成 Redis 8 的 Docker 容器化部署,兼顾易用性和生产环境的稳定性

容器化redis和redis.conf配置下载链接:

https://pan.baidu.com/s/1ehXVaorwhtueETfc_DQDHA 提取码: vnjq

相关推荐
JAVA面经实录91715 小时前
Java企业级工程化·终极完整版背诵手册(无遗漏、全覆盖、面试+落地通用)
java·开发语言·面试
许彰午17 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
Bat U18 小时前
JavaEE|多线程初阶(七)
java·开发语言
运维全栈笔记20 小时前
K8S部署Redis高可用全攻略:1主2从3哨兵架构实战
redis·docker·云原生·容器·架构·kubernetes·bootstrap
掌心向暖RPA自动化21 小时前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa
日取其半万世不竭21 小时前
Minecraft Java版社区服务器搭建教程(Linux,适合新手)
java·linux·服务器
SCBAiotAigc21 小时前
2026.5.1:`DockerDesktop must be owned by an elevated account`错误的解决办法
人工智能·docker·具身智能
TeamDev1 天前
JxBrowser 9.0.0 版本发布啦!
java·前端·混合应用·jxbrowser·浏览器控件·跨平台渲染·原声输入
AI人工智能+电脑小能手1 天前
【大白话说Java面试题】【Java基础篇】第24题:Java面向对象有哪些特征
java·开发语言·后端·面试
AI人工智能+电脑小能手1 天前
【大白话说Java面试题】【Java基础篇】第25题:JDK1.8的新特性有哪些
java·开发语言·后端·面试