以Docker方式安装Redis集群
以 Redis-6.0.6 为例,先从仓库将镜像拉下来:
docker pull redis:6.0.6 |
---|
Redis 的配置文件和数据文件不能放在镜像中,这里选择容器中的目录和宿主机上一致,这样更方便管理。以 /data/redis 为 Redis 的主目录,配置文件放在目录 /data/redis/conf,数据文件放在目录 /data/redis/data。
注意,需将容器的网络模式设置为主机(host)模式,而不能是默认的网桥(Bridge)等模式。主机模式下,不有用宿主机和容器间的端口映射(即“-p”参数可省略了)。
这里使用了进程监控脚本工具 process_monitor.sh 来自动拉起 Redis 容器,process_monitor.sh 带两个参数,第一个参数为被监控进程(包含目录)和匹配模式(为其中一个参数),第二个参数为拉起进程命令或脚本。
在启动 Redis 窗口之前,需要创建好各目录和设置好配置文件。建议以公共配置文件 redis.conf 加端口定制配置文件 redis-PORT.conf 相结合方式,可直接基于 redis-6.0.6 源代码包提供的 redis.conf 修改。
- Crontab设置:
PMONITOR=/usr/local/bin/process_monitor.sh
DOCKER=/bin/docker
REDIS_HOME=/data/redis
REDIS_SERVER=/usr/local/bin/redis-server
PORT1=2020
PORT2=2021
PORT3=2022
PORT4=2023
PORT5=2024
PORT6=2025
# PORT1
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT1" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT1 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT1.conf"
# PORT2
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT2" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT2 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT2.conf"
# PORT3
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT3" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT3 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT3.conf"
# PORT4
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT4" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT4 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT4.conf"
# PORT5
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT5" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT5 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT5.conf"
# PORT6
* * * * * $PMONITOR "$REDIS_SERVER 0.0.0.0:$PORT6" "$DOCKER run -d --rm --network=host -u=redis --name=redis-$PORT6 -v $REDIS_HOME:$REDIS_HOME redis:6.0.6 $REDIS_SERVER $REDIS_HOME/conf/redis-$PORT6.conf"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2019-09-03 Redis之eval+lua实现初步