redis-3.0 集群实现原理与安装
redis-3.0 集群实现原理与安装
captainliu 发表于1年前
redis-3.0 集群实现原理与安装
  • 发表于 1年前
  • 阅读 20
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 本篇博客主要讲述redis-3.0的部分原理和redis-3.0集群的搭建

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 使用集群模式,允许转向

然后进行测试

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

共有 人打赏支持
粉丝 9
博文 86
码字总数 67173
×
captainliu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: