基于Docker搭建Redis集群
最近项目需要Redis集群
在这里插入代码片
,找了无数份文档没有一个清晰的,算了自己研究研究打一个清晰的文档
按照Redis官网的建议,至少是3主3从,所以,我们要准备6个Redis节点来搭建Redis集群。
1 创建文件夹 以及进入文件夹
#创建文件夹 以及进入文件夹
mkdir /opt/dockerapp
cd /opt/dockerapp
2 创建Redis镜像添加内容
#1. 创建打开dockerfile:
vi dockerfile
#2. dockerfile文件添加内容:
FROM redis:4.0.1
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir /usr/local/etc/redis && chown redis:redis /usr/local/etc/redis
ENV REDIS_C=/usr/local/etc/redis
RUN echo "port 6379" > $REDIS_C/redis.conf
RUN echo "cluster-enabled yes" >> $REDIS_C/redis.conf
RUN echo "cluster-config-file nodes.conf" >> $REDIS_C/redis.conf
RUN echo "cluster-node-timeout 5000" >> $REDIS_C/redis.conf
RUN echo "appendonly yes" >> $REDIS_C/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
#3. 制作Redis镜像:
docker build -f dockerfile -t jiang/redis-cluster:4.0.1 .
3 下载Redis.gz包,注意:到此步骤才需要Redis的安装包
,上面的操作不需要
链接:https://pan.baidu.com/s/1wvWLGFA2SR9wvMzXjxRCNQ
提取码:h7pp
下载到本地在上传到Linux上去
4 创建打开ruby镜像添加内容
#1. 创建打开dockerfile2:
vi dockerfile2
#2. dockerfile2文件添加内容:
FROM ruby:2.4
RUN gem install redis
ADD ./redis-4.0.1.tar.gz /opt/dockerapp
RUN cd /opt/dockerapp && ln -sf redis-4.0.1 redis
3. 制作Ruby镜像:
docker build -f dockerfile2 -t jiang/my_ruby:2.4 .
注意,这里的路径要对应第三步的压缩包
4 启动Redis节点
docker run --name redis6000 -p 6000:6379 -d jiang/redis-cluster:4.0.1
docker run --name redis6001 -p 6001:6379 -d jiang/redis-cluster:4.0.1
docker run --name redis6002 -p 6002:6379 -d jiang/redis-cluster:4.0.1
docker run --name redis6003 -p 6003:6379 -d jiang/redis-cluster:4.0.1
docker run --name redis6004 -p 6004:6379 -d jiang/redis-cluster:4.0.1
docker run --name redis6005 -p 6005:6379 -d jiang/redis-cluster:4.0.1
5 查看Redos节点IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis6000
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis6001
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis6002
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis6003
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis6004
docker inspect --format='{{.NetworkSettings.IPAddress}}' redis6005
6 启动并打开ruby容器
docker run -it jiang/my_ruby:2.4 /bin/bash
7 ruby容器内输入
/opt/dockerapp/redis/src/redis-trib.rb create --replicas 1 172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379 172.17.0.8:6379 172.17.0.9:6379
注意:/opt/dockerapp/redis/src/redis-trib.rb
,这里的路径也要对应第四步的配置路径
注意:172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379 172.17.0.8:6379 172.17.0.9:6379
,这里对应第五步查询的IP地址
接着在输入:yes
出现下面显示说明集群创建成功:
8 到此Redis集群已经配置成功了!!!
非常简单,
我拿RedisDesktopManager工具连接一下看看
Redis集群已经成功!!!