Docker 部署 Redis 集群 VS 正常部署 Redis 集群

网友投稿 240 2022-10-22

Docker 部署 Redis 集群 VS 正常部署 Redis 集群

程序员的成长之路

互联网/程序员/技术/资料共享

​​关注​​

阅读本文大概需要 4 分钟。

​前言​

之前在服务器上部署过Redis集群,最近用Docker部署了一遍,发现有了Docker简便很多,mark这篇文章记录下。

准备:vm虚拟机、CentOS 7

​正常部署Redis集群​

1、下载 Redis 安装包

Redis安装包采取的是在线wget下载,若wget命令不存在,执行​​​yum -y install wget​​​安装。

执行命令:

​​​wget -y install gcc-c++​​​

3、编译安装 Redis

解压:

​​​tar xzf redis-6.0.7.tar.gz​​​

编译:

​​​cd redis-6.0.7​​​

​​​make​​​

如果报错了,可能是gcc版本问题,解决措施如下:

# 1、安装gcc全家桶yum install cppyum install binutilsyum install glibcyum install glibc-kernheadersyum install glibc-commonyum install glibc-develyum install gccyum install make# 2、升级gccyum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bash# 3、设置永久生效echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

安装:

​​​make install​​​

测试:

​​​redis-server redis.conf​​​

4、创建Redis集群

通过脚本创建6个redis配置:

# 通过脚本创建6个redis配置for port in $(seq 1 6); \do \mkdir -p /root/redis/node-${port}/conftouch /root/redis/node-${port}/conf/redis.confcat << EOF >/root/redis/node-${port}/conf/redis.confport 637${port}bind 0.0.0.0cluster-enabled yescluster-config-file /root/redis/node-${port}/conf/nodes.confcluster-node-timeout 5000appendonly yesdaemonize yesEOFdone

启动六个服务:

for port in $(seq 1 6); \do \redis-server /root/redis/node-${port}/conf/redis.confdone

查看下:

5、创建集群

redis-cli --cluster create 127.0.0.1:6371 127.0.0.1:6372 127.0.0.1:6373 127.0.0.1:6374 127.0.0.1:6375 127.0.0.1:6376 --cluster-replicas 1

中途输入一次yes:

6、测试

测试下咱们的集群:

我们kill掉 127.0.0.1:6371 再来看一下:

到这里,我们的Redis集群就部署成功了!!

​Docker部署Redis集群​

Docker安装步骤:

#1、卸载旧的版本sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine #2、需要的安装包sudo yum install -y yum-utils#3、安装镜像仓库 sudo yum-config-manager \ --add-repo \ # 默认是国外的 sudo yum-config-manager \ --add-repo \ # 建议使用阿里云的,十分快速# 配置下加速# >移动到下述目录:cd /etc/docker# >找到daemon.json文件,如果没有就新建一个,填入如下信息:{"registry-mirrors":[">重启下dockerservice docker restart# 更新yum软件包索引yum makecache fast#4、安装docker相关的依赖 docker-ce 社区版 ee 企业版sudo yum install docker-ce docker-ce-cli containerd.io#5、启动Dockersudo systemctl start docker#6、检测是否安装成功docker version#7、测试hello-worlddocker run hello-world#8、查看一下下载的这个 hello-world 镜像[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest bf756fb1ae65 7 months ago 13.3kB

安装完成,测试下:

成功!

1、创建网卡

​​​docker network create redis --subnet 172.38.0.0/16​​​

2、通过脚本创建6个配置

# 通过脚本创建6个redis配置for port in $(seq 1 6); \do \mkdir -p /root/redis/node-${port}/conftouch /root/redis/node-${port}/conf/redis.confcat << EOF >/root/redis/node-${port}/conf/redis.confport 6379bind 0.0.0.0cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000cluster-announce-ip 172.38.0.1${port}cluster-announce-port 6379cluster-announce-bus-port 16379appendonly yesEOFdone

3、通过脚本运行6个容器

for port in $(seq 1 6); \do \docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \-v /root/redis/node-${port}/data:/data \-v /root/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \-d --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf; \done

Docker ps 查看下:

4、创建集群

# 进入一个容器中[root@localhost ~]# docker exec -it redis-1 /bin/sh# 执行创建集群命令/data # redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1

5、测试

查看下Redis集群节点信息:

进入redis-1容器,测试写入和读取:

redis-cli -h 127.0.0.1 -c -p 3679

然后停止掉这个容器:

[root@localhost ~]# docker stop redis-1

这里显示fail了。

进入 redis-2 容器中的redis:

[root@localhost ~]# docker exec -it redis-2 /bin/sh/data # /data # redis-cli -h 127.0.0.1 -c -p 3679

搞定,收工!!

咱们​下篇见​!

每天进步一点点

慢一点才能更快

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java中的类型自动转换机制解析
下一篇:想了解 spring-cloud-kubernetes,那就先来实战一把官方demo
相关文章

 发表评论

暂时没有评论,来抢沙发吧~