redis Cluster 安装
介绍:
1.Redis Cluster是一个高性能高可用的分布式系统。由多个Redis实例组成的整体,数据按照Slot存储分布在多个Redis实例上,通过Gossip协议来进行节点之间通信。
Redis Cluster功能特点如下:
1)所有的节点相互连接
2)集群消息通信通过集群总线通信,,集群总线端口大小为客户端服务端口+10000,这个10000是固定值
3)节点与节点之间通过二进制协议进行通信
4)客户端和集群节点之间通信和通常一样,通过文本协议进行
5)集群节点不会代理查询
6)数据按照Slot存储分布在多个Redis实例上
7)集群节点挂掉会自动故障转移
8)可以相对平滑扩/缩容节点
准备工作:
一台centos7虚拟机
安装:
将redis包进行上传(需要3.0以后的版本不然对插件不管用)
解压:
make&&make install
cd src/
[root@web3 src]# cp redis-trib.rb /usr/local/bin #将插件复制到/usr/local/bin/目录里
修改配置文件:
vi redis.conf
在里面修改这么几行:
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
此时我们需要用到在一台虚拟机上用到六个redis的服务 达到三主三从:
[root@web3 redis-3.0.5]# mkdir -p /usr/local/cluster-test
[root@web3 redis-3.0.5]# cd /usr/local/cluster-test/
[root@web3 cluster-test]# mkdir 7000
[root@web3 cluster-test]# mkdir 7001
[root@web3 cluster-test]# mkdir 7002
[root@web3 cluster-test]# mkdir 7003
[root@web3 cluster-test]# mkdir 7004
[root@web3 cluster-test]# mkdir 7005
将修改好的配置文件进行一个拷贝:能够有效节约时间和提升工作效率
#拷贝配置文件
[root@web3 cluster-test]# cp /root/redis-3.0.5/redis.conf /usr/local/cluster-test/7000
[root@web3 cluster-test]# cp /root/redis-3.0.5/redis.conf /usr/local/cluster-test/7001
[root@web3 cluster-test]# cp /root/redis-3.0.5/redis.conf /usr/local/cluster-test/7002
[root@web3 cluster-test]# cp /root/redis-3.0.5/redis.conf /usr/local/cluster-test/7003
[root@web3 cluster-test]# cp /root/redis-3.0.5/redis.conf /usr/local/cluster-test/7004
[root@web3 cluster-test]# cp /root/redis-3.0.5/redis.conf /usr/local/cluster-test/7005
#修改端口号
root@web3 cluster-test]# sed -i "s/7000/7001/g" /usr/local/cluster-test/7001/redis.conf
[root@web3 cluster-test]# sed -i "s/7000/7002/g" /usr/local/cluster-test/7002/redis.conf
[root@web3 cluster-test]# sed -i "s/7000/7003/g" /usr/local/cluster-test/7003/redis.conf
[root@web3 cluster-test]# sed -i "s/7000/7004/g" /usr/local/cluster-test/7004/redis.conf
[root@web3 cluster-test]# sed -i "s/7000/7005/g" /usr/local/cluster-test/7005/redis.conf
然后再对这几个节点进行启动:
[root@web3 cluster-test]# cd /usr/local/cluster-test/7000/
[root@web3 7000]# redis-server redis.conf
[root@web3 7000]# cd ../7001
[root@web3 7001]# redis-server redis.conf
[root@web3 7001]# cd ../7002
[root@web3 7002]# redis-server redis.conf
[root@web3 7002]# cd ../7003
[root@web3 7003]# redis-server redis.conf
[root@web3 7003]# cd ../7004
[root@web3 7004]# redis-server redis.conf
[root@web3 7004]# cd ../7005
[root@web3 7005]# redis-server redis.conf
[root@web3 7005]#
注意:此方式是在前台运行的 如果不想多开多个窗口 可以 进入配置文件里进行修改变为后台运行
vi /etc/redis.conf
daemonize yes
查看6个节点的启动进程情况:
[root@node1 cluster-test]# ps -ef | grep redis
root 9111 1 0 14:38 ? 00:00:48 redis-server 127.0.0.1:7001 [cluster]
root 9186 1 0 14:39 ? 00:00:47 redis-server 127.0.0.1:7002 [cluster]
root 9269 1 0 14:39 ? 00:00:48 redis-server 127.0.0.1:7003 [cluster]
root 9367 1 0 14:40 ? 00:00:46 redis-server 127.0.0.1:7004 [cluster]
root 9383 1 0 14:40 ? 00:00:47 redis-server 127.0.0.1:7005 [cluster]
root 16037 1 0 16:08 ? 00:00:24 redis-server 127.0.0.1:7000 [cluster]
后面有 [Cluster]字样则为成功
将6个节点连在一起构招成集群
安装插件:
yum install ruby ruby-devel rubygems rpm-build
gem install redis #此为redis对插件的一个连接测试
报错:
指 ruby 的版本不能够低于2.3.0版本此时进行查看
解决方法:
在原有的安装命令上加要安装的版本号
通过命令将六个插件连接到一起
redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
此为成功
随后进行测试集群的状态是否成功:
redis-trib.rb check 127.0.0.1:7000
M : 为主节点 S:为从节点
最后进行登录测试:
redis-cli -c -p 7000
进行查看主从状态:
[root@node1 cluster-test]# redis-cli -c -p 7000
127.0.0.1:7000> cluster nodes
c59ad22f91b25be70ed278bb9f867cf7a5fe76c8 127.0.0.1:7000 myself,slave 6bdf4aa002039c0d49091a2a9f1114e2d849d7f6 0 0 1 connected
d15f1d1219881d5da414f8ea195df7ab53459d90 127.0.0.1:7005 slave 288c84d7c382b842674eab8aa386d6268acee374 0 1608808930302 6 connected
4031138f082ca9d4b4d45fc1b74eab230e3f3538 127.0.0.1:7006 master - 0 1608808931310 8 connected 0-1364 5461-6826 10923-12287
56285971a878c61af432cd5ed6431da8410ee265 127.0.0.1:7001 master - 0 1608808930302 2 connected 6827-10922
288c84d7c382b842674eab8aa386d6268acee374 127.0.0.1:7002 master - 0 1608808930805 3 connected 12288-16383
e2c93e5ad9410419305cdaa924df24bd3a05b0fe 127.0.0.1:7004 slave 56285971a878c61af432cd5ed6431da8410ee265 0 1608808931310 5 connected
5dca178e087e840e480dd1ba7a244716b9860c3c 127.0.0.1:7007 slave 4031138f082ca9d4b4d45fc1b74eab230e3f3538 0 1608808929798 8 connected
6bdf4aa002039c0d49091a2a9f1114e2d849d7f6 127.0.0.1:7003 master - 0 1608808931814 7 connected 1365-5460
127.0.0.1:7000>