干了一下午的redis cluster集群的搭建

Posted 背井

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干了一下午的redis cluster集群的搭建相关的知识,希望对你有一定的参考价值。

1、第一台机器【172.16.198.138】

1.1、创建4个目录
[root@emooco ~]# mkdir -p /etc/redis-cluster
[root@emooco ~]# mkdir -p /var/log/redis
[root@emooco ~]# mkdir -p /var/redis/7001
[root@emooco ~]# mkdir -p /var/redis/7002

/etc/redis-cluster:存放配置文件的redis.conf
/var/log/redis:存放日志文件的
/var/redis/7001和7002: 存放快照文件的

1.2、从redis安装目录复制redis.conf到/etc/redis目录下
命令
[root@emooco redis-6.0.6]# cp redis.conf /etc/redis/7001.conf
[root@emooco redis-6.0.6]# cd /etc/redis
图解


以上得到了7001.conf配置文件

1.3、再复制一份7002的配置文件
命令
[root@emooco redis]# cp 7001.conf ./7002.conf
图解


上图可以得到了7002.conf配置文件

1.4、修改7001.conf配置文件
port 7001
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7001.conf
cluster-node-timeout 15000
daemonize	yes							
pidfile		/var/run/redis_7001.pid						
dir 		/var/redis/7001		
logfile /var/log/redis/7001.log
bind 172.16.198.138		
appendonly yes
1.5、修改7002.conf配置文件
port 7002
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7002.conf
cluster-node-timeout 15000
daemonize	yes							
pidfile		/var/run/redis_7002.pid						
dir 		/var/redis/7002	
logfile /var/log/redis/7002.log
bind 172.16.198.138		
appendonly yes
1.6、配置redis的开机自动启动脚本
1.6.1、开机自启脚本的目录
[root@emooco init.d]# pwd
/etc/init.d

[开机自动启动脚本不会设置的看这篇文章,点击这里可以查看](https://blog.csdn.net/wildwolf_001/article/details/115296712#comments_15702577)

1.6.2、将上面文章设置好的开机自启脚本复制两份
命令
[root@emooco init.d]# cp redis_6379 ./redis_7001
[root@emooco init.d]# cp redis_7001 redis_7002
图解

1.6.3、修改开机自启动配置文件


只需要将开机自启动中的端口号改一下就行了,REDISPORT=【你的配置文件的端口号7001或者7002】

1.7、安装ruby相关软件
1.7.1、安装ruby
命令
[root@emooco network-scripts]# yum install -y ruby
图解

1.7.2、安装rubygems
命令
[root@emooco network-scripts]# yum install -y rubygems
图解

1.7.3、使用gem安装redis
命令
[root@emooco network-scripts]# gem install redis
图解

1.8、启动redis7001和redis7002
1.8.1、到脚本目录下


到开机自启的脚本目录下,启动redis 7001和7002进程,这里不用redis-cli是因为脚本里面有设置,会自动执行的

1.8.2、到脚本目录下启动脚本
命令
[root@emooco init.d]# ./redis_7001 start
[root@emooco init.d]# ./redis_7002 start
图解

1.9、到脚本目录下查看日志是否启动成功
命令
[root@emooco redis]# cd /var/log/redis
[root@emooco redis]# cat 7001.log 
图解

1.10、复制redis-trib.rb到/usr/local/bin目录下
cp /usr/local/redis-6.0.6/src/redis-trib.rb /usr/local/bin

将redis安装目录下的redis-trib.rb拷贝到/usr/local/bin目录下

2、第二台机器【172.16.198.139】

2.1、创建4个目录
[root@emooco ~]# mkdir -p /etc/redis-cluster
[root@emooco ~]# mkdir -p /var/log/redis
[root@emooco ~]# mkdir -p /var/redis/7003
[root@emooco ~]# mkdir -p /var/redis/7004

/etc/redis-cluster:存放配置文件的redis.conf
/var/log/redis:存放日志文件的
/var/redis/7003和7004: 存放快照文件的

2.2、如172.16.198.139机器上一样拷贝配置文件


拷贝安装目录的redis.conf文件得到7003.conf和7004.conf配置文件

2.3、修改配置文件
2.3.1、修改7003.conf配置文件
port 7003
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7003.conf
cluster-node-timeout 15000
daemonize	yes							
pidfile		/var/run/redis_7003.pid						
dir 		/var/redis/7003
logfile /var/log/redis/7003.log
bind 172.16.198.139	
appendonly yes
2.3.2、修改7004.conf配置文件
port 7004
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7004.conf
cluster-node-timeout 15000
daemonize	yes							
pidfile		/var/run/redis_7004.pid						
dir 		/var/redis/7004
logfile /var/log/redis/7004.log
bind 172.16.198.139		
appendonly yes
2.4、设置开机自启动
命令
[root@emooco init.d]# cp redis_6379 redis_7003
[root@emooco init.d]# cp redis_6379 redis_7004
[root@emooco init.d]# vi redis_7003 
[root@emooco init.d]# vi redis_7004
图解

2.4、启动redis 7003和redis7004的脚本

3、第三台机器【172.16.198.140】

3.1、创建4个目录
[root@emooco ~]# mkdir -p /etc/redis-cluster
[root@emooco ~]# mkdir -p /var/log/redis
[root@emooco ~]# mkdir -p /var/redis/7005
[root@emooco ~]# mkdir -p /var/redis/7006

/etc/redis-cluster:存放配置文件的各个节点的信息/var/log/redis:存放日志文件的/var/redis/7005和7006: 存放快照文件的`

3.2、如172.16.198.140机器上一样拷贝配置文件

拷贝安装目录的redis.conf文件得到7003.conf和7004.conf配置文件

拷贝安装目录的redis.conf文件得到7005.conf和7006.conf配置文件

3.3、修改配置文件
3.3.1、修改7005.conf配置文件
port 7005
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7005.conf
cluster-node-timeout 15000
daemonize	yes							
pidfile		/var/run/redis_7005.pid						
dir 		/var/redis/7005
logfile /var/log/redis/7005.log
bind 172.16.198.140	
appendonly yes
3.3.2、修改7006.conf配置文件
port 7006
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7006.conf
cluster-node-timeout 15000
daemonize	yes							
pidfile		/var/run/redis_7006.pid						
dir 		/var/redis/7006
logfile /var/log/redis/7006.log
bind 172.16.198.140	
appendonly yes
3.3.3、设置开机自启动
命令
[root@emooco init.d]# cp redis_6379 redis_7005
[root@emooco init.d]# cp redis_6379 redis_7006
[root@emooco init.d]# vi redis_7005 
[root@emooco init.d]# vi redis_7006
图解

3.4、启动redis 7005和redis7006的脚本

4、在第一台机器【172.16.198.138】上开启redis集群

确保此时已经启动了6台redis7001-7006

命令
[root@emooco init.d]# redis-cli --cluster create 172.16.198.138:7001 172.16.198.138:7002 172.16.198.139:7003 172.16.198.139:7004 172.16.198.140:7005 172.16.198.140:7006 --cluster-replicas 1
图解

图中蓝色光标的位置问是否接受这个配置,从图中可以看出给配置了3个master节点和3个slave节点,而且每个master节点上也分配了哈希槽的个数,slots[0-5460],slots[5461-10922],slots[10923-16383]

是否接受这个配置

输入yes接受这个分配的配置

图解

5、查看集群生成的节点信息

命令
[root@emooco redis-cluster]# pwd
/etc/redis-cluster
[root@emooco redis-cluster]# cat node-7006.conf 
[root@emooco redis-cluster]# cat node-7006.conf 

图解


6、检查某个节点

命令
[root@emooco init.d]# redis-cli --cluster check 172.16.198.140:7005
图解


被检查的节点会优先的显示在最上面,可以查看哈希槽的使用情况,以及每个主节点上key的个数,以及每个机器的信息都可以看的到

7、一个网关的小插曲

7.1、网络ping-自己的Wi-Fi的IP不通

7.2、ping外网的百度也是不通

7.3、查看电脑上的网关

7.4、修改GATWAY为上图的IP
命令
[root@emooco network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@emooco network-scripts]# vi ifcfg-ens33 
图解

以上是关于干了一下午的redis cluster集群的搭建的主要内容,如果未能解决你的问题,请参考以下文章

redis集群与分片-Redis Cluster集群的搭建与实践

Redis Cluster集群的搭建

Docker搭建Redis的cluster集群

Docker搭建Redis Cluster集群及扩容和收容

redis cluster 集群搭建

Redis Cluster集群搭建Cluster集群扩缩容底层原理