弄浪的鱼

分布式数据处理系统第一个要解决的问题就是如何将数据进行拆分,利用多台计算机处理大规模数据。对于数据量很大的数据集,单机无法保存或者处理时,通过对数据集进行水平拆分,将不同的数据子集存放到不同的处理节点,这种对数据进行拆分的方式叫做分区(partition)

分区

其中常用的哈希算法有节点取余哈希算法,一致性哈希算法,以及虚拟槽分区算法。Redis Cluster 中用的正式虚拟槽分区算法。

Redis 支持复杂的数据结构

redis 相比 memcached 来说,拥有更多的数据结构,能支持更丰富的数据操作。如果需要缓存能够支持更复杂的结构和操作, redis 会是不错的选择。

Redis 原生支持集群模式

在 redis3.x 版本中,便能支持 cluster 模式,而 memcached 没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据。

性能对比

由于 redis 只使用单核,而 memcached 可以使用多核,所以平均每一个核上 redis 在存储小数据时比 memcached 性能更高。而在 100k 以上的数据中,memcached 性能要高于 redis。虽然 redis 最近也在存储大数据的性能上进行优化,但是比起 memcached,还是稍有逊色。