为什么要进行分片集群?
主从同步以及哨兵模式仍然没有解决Redis的海量数据的存储问题以及高并发的写的操作,因此引入了分片集群。
什么是Redis的分片集群模式?
多个master与对应的salve进行集群,形成分片集群。
分片集群的特点:
1. 有多个master,每个master存储不同的数据。
2. 每个master都有多个salve从而达到了海量数据的存储操作。
3. 每个master之间都进行ping检测,与哨兵模式功能类似。
4. 当客户端进行请求时,可以访问任意的集群节点,然后都会被转发到任意正确的节点。
Redis分片集群是如何做到读和写数据的?
1. Redis引入了哈希槽的概念,一个集群有16384个哈希槽,这些哈希槽被分配给不同的实例。
2. 当数据进行读写操作时,根据Key的有效部分进行计算哈希值,并对16384取余,(有效部分值若key前有大括号,则大括号为有效部分,若没有则Key为有效部分),这个余数作为卡槽,在读或者写时,根据这个卡槽找所在的实例即可。