使用Redis分区将数据分割到多个Redis实例


分区是将所有的数据分割到多个Redis实例的过程,所以每个Redis实例存放的是所有键值的子集。

Redis分区主要有两个目标:

1)允许使用多台计算机的内存来存放更大的数据。如果不做分区的话,单台计算机的内存又限制。

2)使用多台计算的计算能力和网络带宽

有许多不同的分区场景,假设有4个Redis实例R0,R1,R2,R3,有很多表示用户的键值比如user:1,user:2,user:3....。有很多方法使指定的键值映射到指定的Redis实例上。

其中一种分区方法就是range partitioning,就是根据对象的范围映射到特定的Redis实例上,比如用户的ID从0到10000存储到R0上,ID从10001到20000存储到R1上。但是这种分区方法有个不利条件就是需要维护一个键值范围到后端Redis实例的范围表。这张表需要维护并且每种对象都需要一张这种表。因此,这种分区方式常常不是理想的分区方式。

另外一种分区方式就是hash partitioning.这种分区模式对于任何键值都有效。很多Redis客户端程序和代理工具支持的一种高级hash partitioning就是consistent hashing。

不同的Redis分区实现方式:

Client side partitioning

Proxy assisted partitioning

Query routing

参考资料:http://redis.io/topics/partitioning

Ubuntu 14.04下Redis安装及简单测试

Redis集群明细文档

Ubuntu 12.10下安装Redis(图文详解)+ Jedis连接Redis

Redis系列-安装部署维护篇

CentOS 6.3安装Redis

Redis安装部署学习笔记

Redis配置文件redis.conf 详解

Redis 的详细介绍:请点这里
Redis 的下载地址:请点这里

本文永久更新链接地址

相关内容