前言
由于本人是个docker控,不喜欢安装各种环境,而且安装redis-trib也有点繁琐,索性用docker来做redis cluster。
本文用的是伪集群,真正的集群放到不同的机器即可。端口是7001-7006。
	工作目录: /data/redis
创建文件夹
首先创建一堆对应端口的文件夹,下面是脚本
create.sh
| 					1				
 					2				
 					3				
 					4			 | fori in`seq7001 7006`domkdir-p ${i}/datadone | 
添加执行权限并执行
| 					1				
 					2			 | chmod 777 create.sh./create.sh | 
部署redis
本人不喜欢docker run,所以用了docker-compose。官方文档 https://docs.docker.com/compose/overview/
创建docker-compose.yml
用publicisworldwide/redis-cluster镜像的原因是人家已经把配置文件写好了,配置文件没有挂载是懒,别学我
docker-compose.yml
| 					1				
 					2				
 					3				
 					4				
 					5				
 					6				
 					7				
 					8				
 					9				
 					10				
 					11				
 					12				
 					13				
 					14				
 					15				
 					16				
 					17				
 					18				
 					19				
 					20				
 					21				
 					22				
 					23				
 					24				
 					25				
 					26				
 					27				
 					28				
 					29				
 					30				
 					31				
 					32				
 					33				
 					34				
 					35				
 					36				
 					37				
 					38				
 					39				
 					40				
 					41				
 					42				
 					43				
 					44				
 					45				
 					46				
 					47				
 					48				
 					49				
 					50				
 					51				
 					52				
 					53				
 					54				
 					55				
 					56				
 					57				
 					58				
 					59				
 					60				
 					61				
 					62				
 					63				
 					64				
 					65				
 					66			 | version: '3.4'x-image:&default-imagepublicisworldwide/redis-clusterx-restart:&default-restartalwaysx-netmode:&default-netmodehostservices:redis1:image: *default-imagenetwork_mode: *default-netmoderestart: *default-restartvolumes:- /data/redis/7001/data:/dataenvironment:- REDIS_PORT=7001redis2:image: *default-imagenetwork_mode: *default-netmoderestart: *default-restartvolumes:- /data/redis/7002/data:/dataenvironment:- REDIS_PORT=7002redis3:image: *default-imagenetwork_mode: *default-netmoderestart: *default-restartvolumes:- /data/redis/7003/data:/dataenvironment:- REDIS_PORT=7003redis4:image: *default-imagenetwork_mode: *default-netmoderestart: *default-restartvolumes:- /data/redis/7004/data:/dataenvironment:- REDIS_PORT=7004redis5:image: *default-imagenetwork_mode: *default-netmoderestart: *default-restartvolumes:- /data/redis/7005/data:/dataenvironment:- REDIS_PORT=7005redis6:image: *default-imagenetwork_mode: *default-netmoderestart: *default-restartvolumes:- /data/redis/7006/data:/dataenvironment:- REDIS_PORT=7006 | 
启动所有redis
| 					1			 | docker-compose up -d | 
如果报错,那就是版本问题。
查看docker版本
| 					1			 | docker -v | 
在文档中可查看docker版本支持的docker-compose.yml版本,为了方便大家查看,我复制出来了。不过一般来说,docker升级比较快,功能迭代也很快,最好还是用最新版本。
| Compose file format | Docker Engine release | 
|---|---|
| 3.4 | 17.09.0+ | 
| 3.3 | 17.06.0+ | 
| 3.2 | 17.04.0+ | 
| 3.1 | 1.13.1+ | 
| 3.0 | 1.13.0+ | 
| 2.3 | 17.06.0+ | 
| 2.2 | 1.13.0+ | 
| 2.1 | 1.12.0+ | 
| 2.0 | 1.10.0+ | 
| 1.0 | 1.9.1.+ | 
部署cluster
运行以下命令(inem0o/redis-trib没有pull会自动pull)
注意:加上-it,不然后续的确认没法继续
| 					1			 | docker run --rm-it inem0o/redis-tribcreate --replicas 1 192.168.30.70:7001 192.168.30.70:7002 192.168.30.70:7003 192.168.30.70:7004 192.168.30.70:7005 192.168.30.70:7006 | 
会出现
| 					1				
 					2				
 					3				
 					4				
 					5				
 					6				
 					7				
 					8				
 					9				
 					10				
 					11				
 					12				
 					13				
 					14				
 					15				
 					16				
 					17				
 					18				
 					19				
 					20				
 					21				
 					22			 | >>> Creating cluster>>> Performing hash slots allocation on 6 nodes...Using 3 masters:192.168.30.70:7001192.168.30.70:7002192.168.30.70:7003Adding replica 192.168.30.70:7004 to 192.168.30.70:7001Adding replica 192.168.30.70:7005 to 192.168.30.70:7002Adding replica 192.168.30.70:7006 to 192.168.30.70:7003M: 5a7bd7698b1fe55beb44faac051d66c8a03fd1b1 192.168.30.70:7001slots:0-5460 (5461 slots) masterM: bb8fda08e1dcd39e937443f81b5458e80f52d804 192.168.30.70:7002slots:5461-10922 (5462 slots) masterM: d907530ee9f6356e0e61a6c7f4d0cc1b22da1189 192.168.30.70:7003slots:10923-16383 (5461 slots) masterS: 52eee69afa751d71c84d5436d14b0e16a37536fa 192.168.30.70:7004replicates 5a7bd7698b1fe55beb44faac051d66c8a03fd1b1S: 701ed2fbb3df9fc63b083818620f5c020d05e323 192.168.30.70:7005replicates bb8fda08e1dcd39e937443f81b5458e80f52d804S: a3548a9dffa225f05786ea2289db65f5f1c623be 192.168.30.70:7006replicates d907530ee9f6356e0e61a6c7f4d0cc1b22da1189Can I set the above configuration? (type 'yes' to accept): | 
输入yes
| 					1				
 					2				
 					3				
 					4				
 					5				
 					6				
 					7				
 					8				
 					9				
 					10				
 					11				
 					12				
 					13				
 					14				
 					15				
 					16				
 					17				
 					18				
 					19				
 					20				
 					21				
 					22				
 					23				
 					24			 | Waiting for the cluster to join.....>>> Performing Cluster Check (using node 192.168.30.70:7001)M: 5a7bd7698b1fe55beb44faac051d66c8a03fd1b1 192.168.30.70:7001slots:0-5460 (5461 slots) master1 additional replica(s)M: d907530ee9f6356e0e61a6c7f4d0cc1b22da1189 192.168.30.70:7003@17003slots:10923-16383 (5461 slots) master1 additional replica(s)S: a3548a9dffa225f05786ea2289db65f5f1c623be 192.168.30.70:7006@17006slots: (0 slots) slavereplicates d907530ee9f6356e0e61a6c7f4d0cc1b22da1189S: 701ed2fbb3df9fc63b083818620f5c020d05e323 192.168.30.70:7005@17005slots: (0 slots) slavereplicates bb8fda08e1dcd39e937443f81b5458e80f52d804S: 52eee69afa751d71c84d5436d14b0e16a37536fa 192.168.30.70:7004@17004slots: (0 slots) slavereplicates 5a7bd7698b1fe55beb44faac051d66c8a03fd1b1M: bb8fda08e1dcd39e937443f81b5458e80f52d804 192.168.30.70:7002@17002slots:5461-10922 (5462 slots) master1 additional replica(s)[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered. | 
完成。
遇到的问题
创建集群的时候会遇到Waiting for the cluster to join………………..一直没有成功
答:网络模式改成host,docker run 的方式加上–net host,docker-compose方式加上network_mode: host。
我原本是端口映射 7001:7000+17001:17000,但是不行,不知道什么原因。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。
原文链接:http://www.cnblogs.com/chenchuxin/p/8404699.html
相关文章
- 刀片服务器是什么 刀片服务器的主要特点 2025-05-27
- 利用FTP和计划任务自动备份网站数据和数据库 2025-05-27
- 服务器技术之硬件冗余技术 2025-05-27
- 服务器是租用还是服务器托管好? 2025-05-27
- 什么是DNS以及它如何影响服务器? 2025-05-27
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
- 
            2025-05-26 31
- 
            docker 安装ElasticSearch 6.x的教程详解 2025-05-27 86
- 
            2025-05-25 85
- 
            2025-05-27 57
- 
            Suncor Energy遭遇网络攻击,致使加拿大石油系统全面瘫痪! 2025-05-26 87
 
        
 
    		 
            	 
															 
         
         
         
        
 
                         
                         
                         
                        