一、redis集群的介绍
1. redis集群的介绍
Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误。Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令。Redis 集群的优势:
- 自动分割数据到不同的节点上。
- 整个集群的部分节点失败或者不可达的情况下能够继续处理命令。
2. redis集群的数据分片
redis集群没有使用一致性hash,而是引用了哈希槽的概念。redis集群中有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置到那个槽,集群的每个节点都会负责一部分的hash槽。这种哈希槽结构很容易添加或删除节点,要想添加一个节点,只需要从其他节点上取部分hash槽分配到新节点上即可添加到集群中。删除某一节点,则将该节点上的哈希槽全部转移到其他可用的节点上,然后将没有任何槽的节点从集群中移除。由于从一个节点将哈希槽移动到另一个节点并不会停止服务,所以无论添加删除或者改变某个节点的哈希槽的数量都不会造成集群不可用的状态。要注意的是,如果哈希槽不完整,会导致整个redis集群的宕机。
二、部署redis集群
实验准备:
在server1(172.25.5.1)上安装redis软件,并开启redis
1. 设置内存分配策略(可根据服务器的实际情况进行设置)