比较三者的不同,首先是Redis和Memcached的对比

Redis和Memcahche相比,Memcached的集群规模更大,Memcached使用了一致性哈希算法将数据分散到了多个实例上,一致性哈希的优势就是支持大规模的集群,这和Redis集群中的Slot分配不同,更加适合大规模缓存集群部署

不过在使用Memcached的时候,需要注意,Memcached支持的数据类型比Redis少很多,Memcached只支持String类型的键值对,Redis支持的数据类型更多,当业务需要丰富的数据类型保存的时候,Memcached就需要考虑一下了

Redis和Memcached的对比情况总结如下

图片

那么其次是Redis和RocksDB的比较,和Redis不一样,RocksDB可以直接把数据保存在硬盘上,单个RocksDB可以保存更多的数据,其只局限于硬盘大小

而且除此之外,RocksDB还支持表结构,而Redis的基本数据类型是键值对,如果需要一个大容量的持久化的键值数据库,RocksDB是一个不错的替代方案

但是RocksDB毕竟利用的底层硬盘中进行保存的,如果进行数据查询的时候,RocksDB要读取的数据在内存中没有,需要去硬盘中的文件进行查找,拖慢RocksDB的读写延迟

对于RocksDB的使用,需要考虑,是否需要自定义开发上层的应用来包装RocksDB

Redis和RocksDB的对比如下

图片

最后,这里主要说一下Redis和Memcached的集群主要区别,集群的可扩展性是评估集群方案的一个重要温度,需要考虑的一点就是元数据是利用Slot映射表还是一致性哈希维护的,如果是Slot映射表,那么是否采用中心化的第三方存储,还是由各个实例自己保存,也是需要考虑的

这来我们说一下

Redis Cluster采用Slot映射表并由实例扩散保存

Codis:使用Slot映射表由第三方存储系统保存

Memcached:使用一致性哈希

发表评论

邮箱地址不会被公开。 必填项已用*标注