redis常用部署架构之redis分片集群。
redis 3.x版本后开始支持
作用:
1.提升数据读写速度
2..提升可用性
分片集群就是将业务服务器产生的数据储存在不同的机器上。
redis分片集群的架构
如上图所示,会将数据分散存储到不同的服务器上,相比于之前来说,redis要处理所有缓存数据的读写,而现在数据是分散到不同的服务器上,显然相比于之前来说读写速度会有很大的提升。
redis的分片集群还有一个特性就是会随机两两配对构建成一对主从复制关系。
在分片集群中每份数据都是独立的关系,并不是将一份完整的数据拆分成多份,而这每份数据之间可能有关系,可能没关系。
redis分片集群的读写原理
在redis分片集群中存储的数据都是以键值对的形式存储到redis分片集群中。
缓存的目的是为了加速
数据缓存最重要的是当寻找数据的时候,数据的命中率。【即能不能在最少的时间内找到需要的数据。】
在计算机中对数据进行哈希运算,不管是什么数据都可以被哈希算法运算为一个数字,而这个数字的大小总是固定在0-2的32次方之间。
在redis分片集群中一共会产生16384哈希槽,【而这16384个哈希槽会被平均分给每个redis节点。每个redis负责不同槽位的读写。】
如上图所示,在redis分片集群中对于数据的存储都是对这个key进行哈希运算,随后拿运算结果,除以16384取余,拿到余数,判断这个余数是由哪个redis节点负责的,将这个数据储存到哪个redis节点上。
哈希运算对象 | 仅键(Key),与值(Value)无关。 |
redis分片集群的部署
1.分别在两台服务器上安装redis
2.创建实例目录,拷贝配置文件
3.编辑实例的配置文件
如上图所示,这是启动redis软件的集群功能,将来可以使用这个redis实例去部署集群。
如上图所示,这是集群的配置文件。将redis实例添加到集群中的时候还需要有一个相应的配置文件。
如上图所示,这是集群之间相互通信的超时时间单位是毫秒。
如上图所示,我们将7001的配置文件拷贝给7002的实例一份,随后将这个拷贝文件中的7001全部替换成7002.
4.启动实例
如上图所示,多启动的端口就是多个redis实例之间进行相互通信的。
5.创建分片集群
如上图所示,先去创建对应的目录,随后复制对应的配置文件,随后用for循环和sed工具去修改配置文件中的内容,
如上图所示,此时这个另外一台机器上的三个redis实例已经启动成功,
如上图所示,这里的1表示每个主服务器配置1个从服务器,当然每个主服务器也可以配置多个从服务器。