redis-cluster集群

1.redis-cluster集群

redis3.0引入的分布式存储方案

集群由多个node节点组成,redis数据分布在这些节点之中。

在集群之中分为主节点和从节点

集群模式当中,主从一一对应,数据写入和读取与主从模式一样,主负责写,从只能读。

集群模式自带哨兵模式,可以自动实现故障切换,但是在故障切换完整之前,整个集群都将不可用,切换完毕之后,集群会立刻恢复

2.集群模式按照数据分片 

1、数据分片:是集群的核心功能,每个主都可以对外提供读,写的功能,但是数据是一一对应写入主的对应从节点,在集群模式中,可以容忍的数据的不完整。

2、高可用:集群的主要目的

3.数据分片的实现

redis的集群引入了哈希槽的概念

redis集群当中16384个哈希槽位(0-16383)

根据集群当中主从节点数,分配哈希槽位,每个主从节点只负责一部分的哈希槽位。

每次读写都涉及到哈希槽位,key通过CRC16校验之后,对16384取余,余数值绝对数据放入哪个哈希槽位,通过这个值找到对应槽位所在的节点,然后直接跳转到这个节点进行存取操作。

4.实验

所有

systemctl stop firewalld

setenforce 0

1:

vim /etc/redis/6379.confredis-cluster集群_第1张图片

保存到 其他五台上面

/etc/init.d/redis_6379 restart

redis-cli -h 192.168.66.15 --cluster create 192.168.66.15:6379 192.168.66.16:6379 192.168.66.17:6379 192.168.66.18:6379 192.168.66.19:6379 192.168.66.20:6379 --cluster-replicas 1

redis-cluster集群_第2张图片

##

replicas 1 :规定一个主只有一个从

主从的配合是随机分配的。

##

yes

##

在集群模式当中,只能选择0库,集群模式不能切换库

##

redis-cli

cluster nodes

redis-cluster集群_第3张图片

已经成功。

集群流程:

1.集群自带主从和哨兵

2.每个主从节点之间互相隔离的,可以容忍数据的不完整。目的:高可用

3.哈希槽位决定每个节点的读写操作,在创建key时,系统已经分配好了指定槽位

4.MOVE不是报错,只是提醒客户端去分配好的槽位节点获取数据

你可能感兴趣的:(redis,java,数据库)