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

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

redis集群安装

3  cd redis-3.2.0

 redis集群安装

4  make&& make install

redis集群安装

如果报

redis集群安装

说明没有安装gcc

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

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

5 安装gcc  

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

 redis集群安装

6 重新 make &&make install

 redis集群安装

代表成功

 

7  执行 cd src/

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

redis集群安装

8 创建文件夹

redis集群安装

redis集群安装

9 复制文件

 redis集群安装

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

 redis集群安装

11 启动

redis集群安装

12 查看

执行ps -ef | grep redis
执行 netstat -tnlp | grep redis
redis集群安装

 

13  安装ruby环境

redis集群安装

下载 redis-3.2.2.gem

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

redis集群安装

文件放到服务器运行

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

 redis集群安装

 

15 集群验证

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

 redis集群安装

 

16 查看redis 集群情况 

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

 redis集群安装

17 集群节点选举

当前情况

redis集群安装

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

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

redis集群安装

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

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

redis集群安装

发现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

redis集群安装

发现 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

 redis集群安装

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

   redis集群安装

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

redis集群安装

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

redis集群安装

输入7009的节点id   89c9325042e3e1016c06d3988b852a9e047dc922

 redis集群安装

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

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

redis集群安装

redis集群安装

最后结果

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

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

 redis集群安装

redis集群安装

可以看到  之前添加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  前面的地址为要添加的子节点 后面的地址为集群的任意地址即可

redis集群安装

192.168.137.153:7010 已经添加进去

******

感觉最好的处理方式 

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

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

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

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

19 节点的移除

移除从节点

执行命令

redis-trib del-node192.168.137.151:7000 ee3cd4823c05c1c557d29be86258f41c4544da0c

ee3cd4823c05c1c557d29be86258f41c4544da0c为7010节点

redis集群安装

发现7010节点没有了

删除主节点

执行

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

redis集群安装

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

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

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

输入4096

 redis集群安装

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

ca46d7da5a9c18ea470cc4294801438db2130eed

 redis集群安装

这块写移除7009的id

89c9325042e3e1016c06d3988b852a9e047dc922

 redis集群安装

redis集群安装

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

执行

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

 redis集群安装

20 . 当出现下面的问题

redis集群安装

本人遇到的情况当服务器关闭 或 重启 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 所有

 redis集群安装

设置hello过期时间120秒

expire hello 120

ttl 命令有3种返回值

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

redis集群安装

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

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

 

相关文章: