分布式缓存的主流产品有哪些?

在实际网络开发中,我们经常使用的分布式缓存系统主要有:Redis、MEMCache、SSDB等。这三者都是k-v(键值对)存储方案,各自都会有优缺点。但是Redis的使用较其他产品更为广泛。

Redis特点突出,支持多种数据类型,如String、Hash、Set、List、StoredSet,并且有高可用的解决方案和集群方案,支持水平扩容,可以满足大部分企业的需求。MEMCache、SSDB相对解决方案不算完善。


RedisMemCache
单核/多核只使用单核,即单线程操作:处理完一个请求后再处理另一个请求。使用多核,属于多线程操作:可以同时处理多个请求。
数据结构不仅仅支持简单的k/v类型数据,同时提供list、set、hash等数据结构的存储。支持简单k/v类型数据
数据安全性:都属于内存数据库Redis服务宕机或重启后数据可以恢复,因为它可以做持久化,将内存数据定期保存到磁盘中,而且提供了两种持久策略,默认支持的是RDM持久化,还有需要手动开启的AOF持久化。MEMCache服务宕机或重启后数据不可以恢复,因为MEMCache仅仅将数据存储在内存中。
数据备份
Redis支持数据备份,即需要开启master-slave策略No
过期策略Redis可以通过expireMEMCache在set时就指定了过期时间
内存回收Redis不会出现内存溢出情况,因为Redis可以将数据持久化到磁盘上MEMCache有内存回收机制,就是当程序里给它设定的内存大小,一旦存储的数据超过该分配的内存大小的时候,就会去自动回收,就是释放,不然就会出现内存溢出的情况,因为MEMCache的数据都是存储在内存中。

SSDB:是基于Google性能极高的LevelDB作为存储引擎去架构的,特性与Redis基本一致,而且与Redis可以完美整合。它可以完全替换Redis,而且与Redis的API兼容,支持Redis的客户端,即redis-cli的所有操作在SSDB中同样适用。由于SSDB高性能的写特性,所以很多时候我们可以通过Redis+SSDB实现分布式缓存的策略。即:使用SSDB写(存储)特性,使用Redis读特性

浏览:509 | 点赞:134 | 评论:0
全部评论
暂无评论

快速评论