1人参与 • 2025-03-10 • Redis
确保已安装 docker。如果未安装,请参考以下命令:
ubuntu/debian:
sudo apt-get update sudo apt-get install docker.io
centos/fedora:
sudo yum install docker
macos/windows:
下载并安装 docker desktop。
安装完成后,启动 docker 服务:
sudo systemctl start docker sudo systemctl enable docker
在 /home/middleware/redis
下创建 data
目录用于存放 redis 数据,并创建 redis.conf
配置文件:
mkdir -p /home/middleware/redis/data touch /home/middleware/redis/redis.conf
编辑 redis.conf
文件,添加以下内容:
bind 0.0.0.0 port 6379 dir /data dbfilename dump.rdb # 设置 redis 密码 requirepass yourpassword # rdb 持久化配置 # 900 秒(15 分钟)内至少有 1 个键被修改时触发保存 save 900 1 # 300 秒(5 分钟)内至少有 10 个键被修改时触发保存 save 300 10 # 60 秒(1 分钟)内至少有 10000 个键被修改时触发保存 save 60 10000
bind 0.0.0.0
:允许所有 ip 连接。port 6379
:redis 服务端口。dir /data
:数据存储目录。dbfilename dump.rdb
:数据文件名。requirepass yourpassword
:设置 redis 密码(将 yourpassword
替换为你的密码)。save
:配置 rdb 持久化规则(详见下文解释)。save
指令用于配置 redis 的 rdb 持久化策略。它的语法如下:
save <seconds> <changes>
<seconds>
:时间间隔(秒)。<changes>
:在指定时间间隔内,如果数据发生了至少 <changes>
次修改,则触发保存。示例解释
在配置文件中:
save 900 1 save 300 10 save 60 10000
save 900 1
save 300 10
save 60 10000
为什么需要多个 save
规则?
多个 save
规则可以平衡 数据安全性 和 性能:
save 60 10000
):确保数据丢失的风险最小化,但可能会影响性能,因为频繁的磁盘写入会增加 i/o 负载。save 900 1
):减少磁盘 i/o,但可能会增加数据丢失的风险。通过组合多个规则,redis 可以在不同场景下灵活地触发数据保存。
从 docker hub 拉取 redis 官方镜像:
docker pull redis
运行以下命令启动 redis 容器,并挂载配置文件和数据目录:
docker run --name redis -d \ -p 6379:6379 \ -v /home/middleware/redis/data:/data \ -v /home/middleware/redis/redis.conf:/usr/local/etc/redis/redis.conf \ redis redis-server /usr/local/etc/redis/redis.conf
--name redis
:容器命名为 redis
。-d
:后台运行容器。-p 6379:6379
:将主机的 6379 端口映射到容器的 6379 端口。-v /home/middleware/redis/data:/data
:挂载数据目录。-v /home/middleware/redis/redis.conf:/usr/local/etc/redis/redis.conf
:挂载配置文件。redis redis-server /usr/local/etc/redis/redis.conf
:使用自定义配置文件启动 redis。运行以下命令,查看容器是否正常运行:
docker ps
使用 redis-cli
连接 redis,并验证密码:
docker exec -it redis redis-cli
在 redis cli 中执行以下命令进行认证:
auth yourpassword
认证成功后,可以执行 redis 命令,例如:
set mykey "hello, redis!" get mykey
停止并重新启动 redis 容器:
docker stop redis docker start redis
再次连接 redis,检查数据是否仍然存在:
docker exec -it redis redis-cli auth yourpassword get mykey
如果你更喜欢使用 docker compose 管理 redis 容器,可以创建 docker-compose.yml
文件:
version: '3' services: redis: image: redis container_name: redis ports: - "6379:6379" volumes: - /home/middleware/redis/data:/data - /home/middleware/redis/redis.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf
然后运行以下命令启动服务:
docker-compose up -d
停止服务:
docker-compose down
最终的 /home/middleware/redis
目录结构如下:
/home/middleware/redis/ ├── data/ # redis 持久化数据目录 │ └── dump.rdb # redis 数据文件 └── redis.conf # redis 配置文件
通过以上步骤,你已经成功使用 docker 部署了 redis,并通过 redis.conf
配置文件实现了数据持久化和密码保护。本文还详细解释了 save
指令的作用和配置方法,帮助你根据业务需求灵活调整持久化策略。
以上就是使用docker部署redis并配置持久化与密码保护的详细步骤的详细内容,更多关于docker部署redis持久化与密码保护的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论