Redis,一个完全免费开源的缓存软件,它是使用C语言编写,基于内存的高性能key-value数据库。Redis在互联网存储技术中得到非常广泛的应用,它作为缓存中间件,能够解决互联网应用中的一些技术瓶颈,且具有使用简单,性能强悍,功能应用场景丰富的特点。
本文讲述Redis的分片存储的架构。
什么是分片存储?
分片存储就是在Redis集群中,采用分布式存储数据的方案,让集群能够得到水平拓展。Redis中使用16384个虚拟哈希槽对集群进行分区,好比如在多个Redis集群中,把16384个槽的位置全部分到Redis集群的master中,每个Redis负责一些槽位,每个槽位都可以用来存储数据,这样就实现了分布式存储。每个Redis实例可以根据机器的性能分配到自定义数量的槽位用来存储数据,数据全部存在16384个槽中,但又分配在不同的Redis实例中,每个Redis实例至少有1个槽位。官网推荐最大Redis集群实例是1000个。
为什么要分片存储?
为了解决单机redis内存存储不足的瓶颈。
Redis是如何实现的?
Redis采用的是虚拟哈希槽分区,把所有的数据key值根据哈希函数映射到0~16384个槽中,每个key通过CRC16校验后对1638