redis集群安装

1.      准备redis 安装包放入 根目录下

2.      执行命令tar -zxvf redis-3.2.0.tar.gz


3  cd redis-3.2.0

 

4  make&& make install


如果报


说明没有安装gcc

注意:把之前解压的redis-3.2.0 删除掉  重新执行 tar-zxvf redis-3.2.0.tar.gz

           因为make &&make install  出现问题了

5 安装gcc  

执行命令yum install gcc  这种方式 虚拟机必须有网

 

6 重新 make &&make install

 

代表成功

 

7  执行 cd src/

   执行 cpredis-trib.rb /usr/local/bin/


8 创建文件夹



9 复制文件

 

10 修改复制之后的 redis.conf 文件

 

11 启动


12 查看

执行ps -ef | grep redis
执行 netstat -tnlp | grep redis

 

13  安装ruby环境


下载 redis-3.2.2.gem

https://rubygems.global.ssl.fastly.net/gems/redis-3.2.2.gem


文件放到服务器运行

14 执行下面的命令

redis-trib.rb create --replicas 2192.168.137.151:7000 192.168.137.151:7001 192.168.137.151:7002 192.168.137.152:7003192.168.137.152:7004 192.168.137.152:7005 192.168.137.153:7006192.168.137.153:7007 192.168.137.153:7008

 

 

15 集群验证

执行命令redis-cli -h 192.168.137.151 -c -p 7000

 

 

16 查看redis 集群情况 

执行命令redis-trib.rb check 192.168.137.151:7000

 

17 集群节点选举

当前情况


192.168.137.153:7008 Master 对应的子节点192.168.137.152:7003 和 192.168.137.153:7007

在192.168.137.153 这台服务器上执行ps -ef | grep redis


执行kill -9 1643  强制杀掉  192.168.137.153:7008 Master 节点

然后执行redis-trib.rb check 192.168.137.151:7000


发现192.168.137.153:7008 Master 节点没有了  对应的子节点192.168.137.153:7007

变成了master   192.168.137.152:7003节点的主节点也对应到了192.168.137.153:7007

重新在启动192.168.137.153:7008这个节点

执行命令redis-server /usr/local/redis_cluster/7008/redis.conf

然后执行redis-trib.rb check 192.168.137.151:7000


发现 192.168.137.153:7008 节点变成了 192.168.137.153:7007的子节点

18 集群节点添加 

添加主节点

新增一个 7009 按照上面的步骤添加一个节点 修改 redis.conf文件 之后启动

执行命令redis-trib.rb add-node 192.168.137.153:7009 192.168.137.151:7000

前面为要添加的节点后面为集群里的任意一个节点都可以

然后在执行redis-trib.rb check 192.168.137.151:7000

 

发现添加的7009是Master  没有附属节点,而且并未给7009分配哈希槽

  

执行命令redis-trib.rb reshard 192.168.137.151:7000 后面为集群redis任意地址即可


  它提示我们需要迁移多少slot到7009上,我们平分16384个哈希槽给4个节点:16384/4= 4096,我们需要移动4096个槽点到7009上   输入4096就可以


输入7009的节点id   89c9325042e3e1016c06d3988b852a9e047dc922

 

 redis-trib 会向你询问重新分片的源节点(source node),即,要从特点的哪个节点中取出 4096 个哈希槽,还是从全部节点提取4096个哈希槽, 并将这些槽移动到7009节点上面。

     如果我们不打算从特定的节点上取出指定数量的哈希槽,那么可以向redis-trib输入 all,这样的话, 集群中的所有主节点都会成为源节点,redis-trib从各个源节点中各取出一部分哈希槽,凑够4096个,然后移动到7009节点上:



最后结果

slots:0-1364,5461-6826,10923-12287(4096 slots) master

可以看到7009节点分片的哈希槽片不是连续的,间隔的移动。

 


可以看到  之前添加key是name的 移动到了7009的节点上

添加从节点

新增一个 7010 按照上面的步骤添加一个节点 修改 redis.conf文件 之后启动

执行命令

redis-trib.rb add-node --slave --master-id 89c9325042e3e1016c06d3988b852a9e047dc922192.168.137.153:7010 192.168.137.151:7000

--master-id后面为主节点id  前面的地址为要添加的子节点 后面的地址为集群的任意地址即可


192.168.137.153:7010 已经添加进去

******

感觉最好的处理方式 

添加好新主从节点之后 在进行 reshard

如果只添加添加主节点 reshard 如果集群子节点比较多会动态重新分配 主从位置

还有测试发现 reshard之后主节点aof里的日志内容会存放rdb快照的格式

但是对应的子节点还是aof格式  解决方式 把主节点干掉 让子变主 在启动原来的主 就变成子了。

19 节点的移除

移除从节点

执行命令

redis-trib del-node192.168.137.151:7000 ee3cd4823c05c1c557d29be86258f41c4544da0c

ee3cd4823c05c1c557d29be86258f41c4544da0c为7010节点


发现7010节点没有了

删除主节点

执行

redis-trib.rb del-node192.168.137.151:7000 89c9325042e3e1016c06d3988b852a9e047dc922


因为有数据, 也要reshard才可以

执行redis-trib.rb reshard 192.168.137.151:7000 后面地址任意即可

 执行以后会提示我们移除的大小,因为7009占用了4096个槽点

输入4096

 

提示接收信息的地址这里用的是 7000的id

ca46d7da5a9c18ea470cc4294801438db2130eed

 

这块写移除7009的id

89c9325042e3e1016c06d3988b852a9e047dc922

 


7009 已经没有槽了  可以删除掉了

执行

redis-trib.rb del-node 192.168.137.151:700089c9325042e3e1016c06d3988b852a9e047dc922

 

20 . 当出现下面的问题


本人遇到的情况当服务器关闭 或 重启 redis的所有进程都会关闭

启动服务器然后重新启动redis的所有节点

check的时候 会看打下面的问题

可以使用redis-trib.rb fix 192.168.137.151:7000这个命令修复

21 命令相关

执行 rpush mylist a b c d e f g  这个命令还可以向右追加

取值如下

lrange mylist 0 -1 所有

 

设置hello过期时间120秒

expire hello 120

ttl 命令有3种返回值

大于等于0的整数 键剩余的过期时间  -1 键没设置过期时间 -2 键不存在


学习网址:http://blog.csdn.net/fengshizty/article/details/51368004

         https://www.cnblogs.com/wuxl360/p/5920330.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值