Redis Cluster集群

Redis Cluster集群

哨兵模式的缺陷

在哨兵模式中,仍然只有一个Master节点。当并发流量较大时,哨兵模式并不能缓解压力,集群从redis3.0应需而生。

集群实现了主从同步,读写分离。

节点复制

搭建集群最少需要六台机器,三主三从(主从都可以扩展)

集群故障转移

集群进行故障转移的方法和Redis Sentinel进行故障转移的方法基本一样,不同的是,在集群里面,故障转移是由集群中其他在线的主节点负责进行的,master宕机后由slave顶上,所以集群不必另外使用Redis Sentinel,当主节点从新恢复后成为主节点的从节点。

 

分片策略

集群将整个数据库分为16384个槽位slot,所有key-value数据都存储在这些slot中的某一个上。一个slot槽位可以存放多个数据,key的槽位计算公式为:slot_number=crc16(key)%16384,其中crc16为16位的循环冗余校验和函数。当加入新的master节点 会从已有

的slot分配给master。

搭建

1、移除centos7自带低版本的ruby

yum remove ruby
yum install ruby
yum install rubygems

2、安装ruby和redis的接口程序,拷贝redis-3.0.0.gem至/usr/local下,执行安装:

gem install /usr/local/redis-3.0.0.gem

3、创建配置目录,单台主从共三台机器或者使用伪分布式

在/usr/local/redis下创建redis-cluster目录,其下创建7001、7002。。7006目录

4、创建配置文件

port 700X
# 开放其他IP访问,集群是必须的
bind 0.0.0.0  
cluster-enabled yes
daemonized yes
logfile /usr/local/redis/redis-cluster/700X/node.log

替换X为对应端口,每个文件夹下都复制一份该配置

5、指定配置文件启动Redis

redis-server /usr/local/redis/redis-cluster/7001/redis.conf

6、 执行创建集群命令

进入到redis源码存放目录redis/redis-4.10.3/src下,执行redis-trib.rb,此脚本是ruby脚本,它依赖ruby环境

./redis-trib.rb create --replicas 1 192.168.200.228:7001 192.168.200.228:7002 192.168.200.228:7003 192.168.200.228:7004 192.168.200.228:7005  192.168.200.228:7006

7、登录集群, -c 表示为集群-cluster

./redis-cli -c -h 127.0.0.1 -p 7001

集群命令:

cluster nodes 查询集群结点信息;

cluster info 查询集群状态信。

springboot配置
spring:
redis:
#数据库索引
cluster:
nodes: 172.16.34.53:7001,172.16.34.53:7002,172.16.34.54:7003,172.16.34.54:7004,172.16.34.55:7005,172.16.34.55:7006
password: ENC(5sqmAB/at8y9K3ckpQg/PNY0pXTSCobW)
commandTimeout: 10000
jedis:
pool:
max-idle: 5000
max-wait: 2000
min-idle: 5
max-active: 1000
 

 

 
原文地址:https://www.cnblogs.com/mzc1997/p/14308209.html