Redis Cluster模式

主从模式,薪火相传模式问题:
主机宕机,导致ip地址发生变化,应用程序中配置需要重新修改对应的主机地址、端口等信息
sentinel模式基本可以满足一般生产的需求,具备高可用性
当数据量过大到一台服务器存放不下,主从模式或sentinel模式就不能满足需求了,需要对存储的数据进行分片,将数据存储到多个Redis实例中(分片)
解决方案:无中心化集群配置

cluster集群特点:
* 方便扩容,多个redis节点网络互联,数据共享,分摊压力,无中心配置相对简单
* 所有的节点都是一主一从(也可以是一主多从),其中从不提供服务,仅作为备用(主节点提供读/)
* 不支持同时处理多个key(如MSET/MGET),因为redis需要把key均匀分布在各个节点上,并发量很高的情况下同时创建key-value会降低性能并导致不可预测的行为
* 支持在线增加、删除节点
* 客户端可以连接任何一个主节点进行读写

Redis集群:启动N个redis节点,每个节点存储总数据的1/N,一个集群至少要有三个主节点
1.redis cluster配置:
cluster-enabled yes  打开集群模式
cluster-config-file nodes-6379.conf  设定节点配置文件名
cluster-node-timeout 15000   设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换
2.启动所有Redis服务
3.创建集群
redis-cli --cluster create --cluster-replicas 1  主 主 主 [] 从 从 从 []
--cluster-replicas :表示副本为1
4.登录集群
redis-cli -c -h 192.168.30.128 -p 7001 -a 123456
[5].查看集群信息 CLUSTER INFO  
[6].列出节点信息 CLUSTER NODES
7.测试设置/获取数据
redis cluster集群是去中心化的,每个节点都是平等的,连接哪个节点都可以获取和设置数据
8.测试master挂掉
master节点如果挂掉,它的slave节点变为新master节点继续对外提供服务,而原来的master节点如果重启,则变为新master节点的slave节点
9.cluster-require-full-coverage
cluster-require-full-coverage为yes,如果某一段插槽的主从都挂掉,整个集群都挂掉
cluster-require-full-coverage为no,如果某一段插槽的主从都挂掉,该插槽数据全都不能使用,也无法存储

slots:
一个 Redis 集群包含 16384 个插槽(hash slot),每个节点负责处理一部分插槽
计算键 key 属于哪个槽: CRC16(key) % 16384
redis-cli每次录入、查询键值,redis都会计算出该key应该送往的插槽,如果不是该客户端对应服务器的插槽,redis会报错,并告知应前往的redis实例地址和端口
redis-cli客户端提供了 –c 参数实现自动重定向,redis-cli  -c –p 6379 登入后,再录入、查询键值对可以自动重定向

jedis开发:
无论连接哪台主机进行存储,集群会自动切换到key所属正确slot主机存储
public static void main(String[] args) { 
     Set<HostAndPort>set =new HashSet<HostAndPort>();
     set.add(new HostAndPort("192.168.31.211",6379));
     JedisCluster jedisCluster=new JedisCluster(set);
     jedisCluster.set("k1", "v1");
     System.out.println(jedisCluster.get("k1"));
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值