redis3.0集群
由多个Redis服务器组成的分布式网络服务集群
每一个Redis服务器称为节点node,节点之间互相通信,两两相连
Redis集群无中心节点(当向redis中插入数据时根据算法插入到固定的redis节点上,但是其他节点知道此数据在哪个节点上;当查询这条数据时,随机查询某一个节点,当此节点没有此数据,但是此节点知道数据在哪个节点上,就会将请求跳转到指定的节点上)
Redis集群节点复制
redis集群节点都有两种角色可选:主节点master node ,从节点slave node。其中主节点用于保存数据,从节点是主节点的复制品,当主节点挂掉,从节点可以马上变为主节点。
redis集群分片
这里集群有固定的槽位slot;
Redis集群的搭建
创建多个主节点
为每个节点指派槽位slot,将多个节点连接起来,组成一个集群
槽位分片完成后,集群进入上线状态
6个节点:3个主节点,每个主节点有一个从节点
1、解压
tar -zxvf redis-3.0xxx.gz
make
make PREFIX=/usr/redis install
mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005
在7000-7005目录中放入redis.conf
redis.conf内容如下
cluster-enabled yes
port 700x
启动所有服务,要进入子目录启动服务
# cd 700x
# redis-server redis.conf
# ss -tanl | grep 700
创建集群
安装目录src中redis-trib.rb完成集群创建
# yum install ruby rubygems -y
redis模块安装
在线安装
# gem install redis
离线安装
https://rubygems.org/gems/redis
# gem install --local redis-3.3.0.gem
在安装目录下的src中(指定master 和 slave)
# ./redis-trib.rb create --replicas 1 192.168.47.21:7000 192.168.47.21:7001 192.168.47.22:7002 192.168.47.22:7003 192.168.47.23:7004 192.168.47.23:7005 192.168.47.24:7006 192.168.47.24:7007
在 700x/nodes.conf中的信息
1d6e832b7fa603f831703e4c11dc5da66e4fe148 192.168.47.24:7007 slave 4c25e85ba6bec4bee99c9799bcc8415c17017e63 0 1467639177390 8 connected
4c25e85ba6bec4bee99c9799bcc8415c17017e63 192.168.47.23:7004 master - 0 1467639179437 5 connected 4096-8191
b72c561d126bb11cca0a2f0f3aba5d71f8912acc 192.168.47.21:7001 slave 3d333b5de203329d2113d75b1537e2db0a71fce6 1467639182917 1467639175348 3 connected
5a06d5797216709dde5e8acd0fcd3283f24d5fa4 192.168.47.24:7006 master - 0 1467639180462 7 connected 0-4095
7880208eb5ac5555510dc496b3d48b9390f8cf78 192.168.47.23:7005 slave 5a06d5797216709dde5e8acd0fcd3283f24d5fa4 0 1467639179848 7 connected
54f7b1861d7bfd97617058bf0f3c9aaa2cb43280 192.168.47.21:7000 myself,master - 0 0 1 connected 12288-16383
3d333b5de203329d2113d75b1537e2db0a71fce6 192.168.47.22:7002 master - 0 1467639181485 3 connected 8192-12287
be7b1d4eec9c3e7658dad7cdfad17a23a62b1d31 192.168.47.22:7003 slave 54f7b1861d7bfd97617058bf0f3c9aaa2cb43280 0 1467639182508 4 connected
vars currentEpoch 8 lastVoteEpoch 0
客户端连接
redis-cli -p 7000 -c
-c 使用集群模式,允许转向
然后进行测试