1.为什么使用分片
1.1 说明:
虽然redis可以扩展内存空间的大小,但是如果需要存储海量的数据,一味地去扩大内存,其实效率不高.
1.2 分片的介绍
准备多台redis,共同为用户提供缓存服务,在保证效率的前提下,实现了内存的扩容.
用户在使用分片机制时,将多台redis当做一个整体来用.
2. 分片的搭建
2.1 分片的规划
由3台redis构成 端口号分别为6379/6380/6381, 如果需要准备多台redis则准备多个配置文件即可,注意其中的端口号.
2.1 准备多台redis
2.2 修改redis端口
说明:修改redis的配置文件的端口号
命令:vim 6380.conf
2.3 启动多台redis
可以建立sh脚本启动
3. 一致性hash算法
一致性哈希算法在1997年由麻省理工学院提出,是一种特殊的哈希算法,目的是解决分布式缓存的问题。 在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。一致性哈希解决了简单哈希算法在分布式哈希表( Distributed Hash Table,DHT) 中存在的动态伸缩等问题.
3.2 一致性hash原理说明
目的:解决数据如何在分布式环境下进行存储.
hash取值区间:8位16进制,共有2^32种可能性.
- 数据如何存储
首先,对存储节点的哈希值进行计算,其将存储空间抽象为一个环,将存储节点配置到环上。环上所有的节点都有一个值。每个node节点都是由IP+port的值通过一致性哈希算法得到.
其次,对数据进行哈希计算,按顺时针方向将其映射到离其最近的节点上去。
- 当节点发生变化时带来哪些影响
当节点的数量发生了变化时,则节点中的对应的数据可以动态的迁移.
原则:当发生了节点变化时,应该尽可能小的影响其他节点.
3.3 一致性hash特性
一致性哈希算法是在哈希算法基础上提出的,在动态变化的分布式环境中,哈希算法应该满足的几