5.11.redis cluster实验: 多master写入、读写分离、高可用性
redis cluster,提供了多个master,数据可以分布式存储在多个master上; 每个master都带有slave,自动就做读写分离; 某个master如果出现故障,就会自动将其slave切换成master,达到高可用。
5.11.1. 多master的写入-海量数据的分布式存储原理
多master的写入,能实现海量数据分布式存储。
在redis cluster写入数据的时候,可以将请求发送到任意一个master上去执行。
当执行写入set key1 value1的时候,每个master都会计算key1对应的CRC16值,并对16384个hash slot取模,找到key1对应的hash slot,然后找到对应的master,如果对应的master就是自己,自己就做写入操作,如果不在此master上,就会给client返回一个moved error,并告诉client到哪个master上去执行这条写入的命令,如下:
[root@cache01 data]# redis-cli -h 192.168.75.187 -p 7001
192.168.75.187:7001>
192.168.75.1