Centos7 安装redis集群(三主三从)

系统环境及安装包准备:

​ 两台Centos7服务器,搭建redis 三主三从
​ 计算机名:servera IP:192.168.93.199
​ 计算机名:serverc IP:192.168.93.201

需要安装包如下:
在这里插入图片描述
redis-3.2.8.tar.gz 下载地址:http://download.redis.io/releases/
redis-3.3.0.gem 下载地址:https://rubygems.org/gems/redis/versions/3.3.0
ruby-2.3.5.tar.gz 下载地址:http://www.ruby-lang.org/en/news/2017/09/14/ruby-2-3-5-released/
tcl8.6.1-src.tar.gz 下载地址:https://sourceforge.net/projects/tcl/files/Tcl/8.6.1/

安装步骤如下:

第一步:安装 redis所需基础环 (两台都要安装)
安装gcc gcc-c++ openssl openssl-devel 基础环境,我们这里使用yum直接安装,命令如下:

[root@servera ~]# yum -y install gcc gcc-c++ openssl openssl-devel

安装tcl8.6.1
我这里将tar.gz安装包都上传到了两台服务器的/app/redis/目录下
tcl8.6.1安装命令如下

root@servera redis]# tar -zxvf tcl8.6.1-src.tar.gz               #解压tar包 
root@servera redis]#cd  /app/redis/tcl8.6.1/unix				#进入tcl8.6.1安装包下的unix
[root@servera unix]# ./configure								#执行编译命令

编译后结果如下:
在这里插入图片描述
接下来执行make安装

make && make install

执行结果如下:
在这里插入图片描述
第二步:安装redis (两台都要安装)
安装命令如下:

[root@servera redis]# cd /app/redis
[root@servera redis]# tar -zxvf redis-3.2.8.tar.gz
[root@servera redis]# cd redis-3.2.8
[root@servera redis]# cd /app/redis/redis-3.2.8/src
[root@servera src]# make && make install

执行结果如下:
在这里插入图片描述
第三步:创建并配置不同实例的配置文件

#1、创建多个实例的文件夹,用于存放不同实例的配置文件
	#servera服务器:
	madir -p /app/redis/cluster/7001
	madir -p /app/redis/cluster/7002
	madir -p /app/redis/cluster/7003
	
	#serverc服务器:
	madir -p /app/redis/cluster/7004
	madir -p /app/redis/cluster/7005
	madir -p /app/redis/cluster/7006
	
#2、从/app/redis/redis-3.2.8/目录下拷贝redis.conf文件,经过一下配置后,并放刚刚创建的实例中,如:/app/redis/redis-3.2.8/reids_7001.conf
	修改内容如下
    	vim redis_7001.conf
       	bind IP地址       #改成服务器本机实IP
       	protected-mode no  #修改参数为no,主要用于设置不同服务器之间节点能互通
       	daemonize yes     #修改参数值为yes,主要用于后台启动
       	cluster-enabled yes  #修改参数为yes,主要用于开启集群模式
       	cluster-node-timeout 5000  #修改参数为5000,主要用于redis节点的会话超时时间
       	appendonly  yes    #主要用于开启redis append only 备份模式,在该模式下redis会把所解收到的每一次写操作请求都追加到appendonly.aof中,当redis重启时,会从该文件恢复到之前的状态。
       	port 端口号         #修改port参数为该节点端口号(例如7001的redis.conf 文件就设置成7001)
       	pidfile /app/redis/cluster/7001/redis_7001.pid   #主要用于设置pid文件存放路径
       	logfile /app/redis/cluster/7001/redis_7001.log #主要用于设置log文件存放路径
       	dbfilename dump_7001_rdb   #主要用于辨别每个节点的数据文件
       	appendfilename appendonly_7001.aof  #主要用于区分不同节点的缓存恢复文件
       	cluster-config-file nodes-7001.conf #主要用于生成集群每个节点的配置相关信息文件
       	dir /app/redis/cluster/7001  #修改redis生成文件存放的路径
    	#将六份配置文件修改完成后,放到之前创建好的六个目录下

第四步 :安装reids集群所需要的rbuy(其中一台安装即可)
在redis 创建集群时使用的命令,需要依赖ruby环境,只需要拉起集群的一台机器安装即可,这里演示安装到servera这台服务器上。

[root@servera redis]#cd /app/redis/
[root@servera redis]# tar -zxvf ruby-2.3.5.tar.gz
[root@servera redis]# cd /app/redis/ruby-2.3.5 
[root@servera ruby-2.3.5]# ./configure prefix=/usr/local/ruby

执行结果如下:
在这里插入图片描述
接下来执行make命令进行安装

make && make install

执行结果如下:
在这里插入图片描述
设置ruby环境变量

vim /etc/profile

编辑/etc/profile文件,将/usr/local/ruby 路径 加入PATH变量中
在这里插入图片描述
执行source /etc/profile 使刚刚的环境变量生效

[root@servera ruby-2.3.5]# source /etc/profile

然后使用ruby -v测试查看ruby安装好的版本

[root@servera ruby-2.3.5]# ruby -v
ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-linux]
[root@servera ruby-2.3.5]# 

第五步 使用ruby安装 redis-3.3.0.gem
安装命令如下:

[root@servera redis]# cd /app/redis
[root@servera redis]# gem install redis-3.3.0.gem

执行正确显示以下内容:
在这里插入图片描述
这里记录一下之前安装遇到的错误, 报错信息如下:
在这里插入图片描述
原因:原因是我安装cetnos是最小化安装,系统缺少zlib库导致,解决方法就是yum install -yopenssl openssl-devel ,然后重新安装ruby后就可以执行成功了。

第六步:创建redis集群

 #1、将redis-3.2.8/src下的redis-trib.rb复制到/app/redis/cluster下
 		cp /app/redis/redis-3.2.8/src/redis-trib.rb /app/redis/cluster/
 
 #1、进行redis集群创建
 	cd /app/redis/cluster/
 		./redis-trib.rb create --replicas 1 192.168.93.199:7001 192.168.93.199:7002 192.168.93.199:7003 192.168.93.201:7004 192.168.93.201:7005 192.168.93.201:7006

执行结果如下:

[root@servera cluster]# ./redis-trib.rb create --replicas 1 192.168.93.199:7001 192.168.93.199:7002 192.168.93.199:7003 192.168.93.201:7004 192.168.93.201:7005 192.168.93.201:7006
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.93.199:7001
192.168.93.201:7004
192.168.93.199:7002
Adding replica 192.168.93.201:7005 to 192.168.93.199:7001
Adding replica 192.168.93.199:7003 to 192.168.93.201:7004
Adding replica 192.168.93.201:7006 to 192.168.93.199:7002
M: b94c34af4fc3df84abbd6e73d79aa9e2ec0ff21a 192.168.93.199:7001
   slots:0-5460 (5461 slots) master
M: 72607c970b3d648308aeebb3606047555e02fa2c 192.168.93.199:7002
   slots:10923-16383 (5461 slots) master
S: dea82de21389f4fb2203e3cb68198fb82210fc61 192.168.93.199:7003
   replicates 6fe62c9e9742059e81a913dc39f66bcf50a8a86f
M: 6fe62c9e9742059e81a913dc39f66bcf50a8a86f 192.168.93.201:7004
   slots:5461-10922 (5462 slots) master
S: f376e57159b2ad2e6603f70b07cdc2b4c4c4e621 192.168.93.201:7005
   replicates b94c34af4fc3df84abbd6e73d79aa9e2ec0ff21a
S: 1a3b40671a96e422492c46bb9d797f74a53ca572 192.168.93.201:7006
   replicates 72607c970b3d648308aeebb3606047555e02fa2c
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join..
>>> Performing Cluster Check (using node 192.168.93.199:7001)
M: b94c34af4fc3df84abbd6e73d79aa9e2ec0ff21a 192.168.93.199:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: dea82de21389f4fb2203e3cb68198fb82210fc61 192.168.93.199:7003
   slots: (0 slots) slave
   replicates 6fe62c9e9742059e81a913dc39f66bcf50a8a86f
S: 1a3b40671a96e422492c46bb9d797f74a53ca572 192.168.93.201:7006
   slots: (0 slots) slave
   replicates 72607c970b3d648308aeebb3606047555e02fa2c
M: 6fe62c9e9742059e81a913dc39f66bcf50a8a86f 192.168.93.201:7004
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: 72607c970b3d648308aeebb3606047555e02fa2c 192.168.93.199:7002
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: f376e57159b2ad2e6603f70b07cdc2b4c4c4e621 192.168.93.201:7005
   slots: (0 slots) slave
   replicates b94c34af4fc3df84abbd6e73d79aa9e2ec0ff21a
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

第七步:登录redis集群

这里讲一下redis设置集群密码,这里我设置密码采用登录后命令方式设置,六个实例节点都需要登录设置一次,密码必须一致,命令格式如下:

#登录命令
[root@servera bin]# /usr/local/bin/redis-cli -c -h 192.168.93.199 -p 7001    
	说明: -c 以集群方式连接; -h IP地址 ; -p端口; -a password 为带密码连接
#集群密码设置(每一个redis实例都需要执行)
[root@servera bin]# /usr/local/bin/redis-cli -c -h 192.168.93.199 -p 7001
192.168.93.199:7001> ping
PONG
192.168.93.199:7001> config set masterauth 1234
OK
192.168.93.199:7001> config set requirepass 1234
OK
192.168.93.199:7001> auth 1234
OK
192.168.93.199:7001> config rewrite
OK
192.168.93.199:7001> exit
[root@servera bin]# 

集群状态查看命令:

 CLUSTER INFO
 CLUSTER NODES
[root@servera bin]# /usr/local/bin/redis-cli -c -h 192.168.93.199 -p 7001
192.168.93.199:7001> ping
(error) NOAUTH Authentication required.
192.168.93.199:7001> auth 1234
OK
192.168.93.199:7001> CLUSTER INFO
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:39175
cluster_stats_messages_received:39175
192.168.93.199:7001> CLUSTER NODES
dea82de21389f4fb2203e3cb68198fb82210fc61 192.168.93.199:7003 slave 6fe62c9e9742059e81a913dc39f66bcf50a8a86f 0 1637648451209 4 connected
1a3b40671a96e422492c46bb9d797f74a53ca572 192.168.93.201:7006 slave 72607c970b3d648308aeebb3606047555e02fa2c 0 1637648450187 6 connected
b94c34af4fc3df84abbd6e73d79aa9e2ec0ff21a 192.168.93.199:7001 myself,master - 0 0 1 connected 0-5460
6fe62c9e9742059e81a913dc39f66bcf50a8a86f 192.168.93.201:7004 master - 0 1637648452222 4 connected 5461-10922
72607c970b3d648308aeebb3606047555e02fa2c 192.168.93.199:7002 master - 0 1637648451717 2 connected 10923-16383
f376e57159b2ad2e6603f70b07cdc2b4c4c4e621 192.168.93.201:7005 slave b94c34af4fc3df84abbd6e73d79aa9e2ec0ff21a 0 1637648451717 5 connected
192.168.93.199:7001> 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玩物丧志的快乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值