Redis集群简介

Redis提供了集群方案,也是就默认src下的redis-trib.rb,Redis集群就是去中心化,去中间件,主节点必须要有三个以上,否则创建集群时,会失败;
可以是一台机器上的三个节点,也可以是三个机器,
假如处理15000个slot的话,他们分别承担的区间是
A:0-5000;
B:5000-10000;
C:10000-15000;
set name shr
按照redis cluster的哈希槽算法:CRC16(‘name’)%150000 。 那么就会把这个key 的存储分配到 A 上了。
新增一个节点,前面的节点每个会拿一定的slot给D;
Redis cluster的主从模式:
给每个主节点添加从节点,主节点提供数据储存吗,从节点从主节点拉去数据备份,主节点挂掉之后,从节点变为主节点,主节点会有预警,及时调试;

一、单机多节点调配

1、看一下redis-trib.rb是否健在,应该是存在;
2、在root目录下新建一个文件夹储存节点,名字要有特色,把conf文件复制六个,放在六个不同文件夹中;
3、修改端口号,和与端口号相关的数字,接下来把cluster的几个开关打开,具体操作网上很多;
4、启动服务通过这6个conf文件;
5、下载ruby环境:yum -y install ruby ruby-devel rubygems rpm-build
获取秘钥: gpg –keyserver hkp://keys.gnupg.net –recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
安装gem端口:gem install redis –version 你的redis版本;
查看接口是否安装::gem list;
6、接下来启动:
redis-trib.rb create –replicas 1 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 127.0.0.1:7006
此处有坑,命令一直找不到,楼主也懒得把那个集群文件移来移去,直接按照步骤重新安装了一次,OK,单机多节点集群搞定;
7、开启之后看到Can I set the above configuration? (type ‘yes’ to accept): 输入yes表示接受配置,显示配置哈希槽,以及集群创建成功,可以用了;
下面来测试一下:启动:redis-cli -c -p 7001
启动完成:set name “张三”; exit
启动:redis-cli -c -p 7005 get name;
能获取到值,说明集群成功;
接下来我们让一个主节点宕机:kill -9 4399 干掉port7001
ps -ef|grep redis
检查一下:redis-trib.rb check 127.0.0.1:7002
[OK] All 16384 slots covered.
所有槽值被覆盖,说明还能用,没有被破坏;7004成为主节点;
我们再把7004干掉:kil -9 4359
[ERR] Not all 16384 slots are covered by nodes.
还有这么多槽值没被覆盖,再去存值取值试一下
(error) CLUSTERDOWN The cluster is down
发生错误,集体宕机;所以要注意主从节点不能全部挂掉;

二、多机多节点调配

1、先配两台Linux虚拟机,两台ip分别为192.168.186.128和192.168.186.129;
2、分别在上面各启动三个节点,128启动7001,7002,7003;129启动7004,7005,7006;
3、关闭防火墙防止访问不到:systemctl stop firewalld.service
查看防火墙状态:service iptables status iptables;
4、接下来开启redis-trib.rb create –replicas 1 192.168.186.128:7001 192.168.186.128:7002 192.168.186.128:7003 192.168.186.129:7004 192.168.186.129:7005 192.168.186.129:7006
然后输入yes接受配置;此时注意必须是全新的redis才可以开启,不能有缓存和备份;
5、测试方法和单机多节点一样:
a:随机连接一个节点,设置key;
b:任意一个节点都能获取;
c:主从节点可以宕机一个,但不可以全部宕机,因为有槽值没有分配;

猜你喜欢

转载自blog.csdn.net/qq_42046342/article/details/82151417