您的位置:首页 > 数据库 > Memcache

mongoldb,redis,memCached的缓存策略

2016-07-17 19:50 381 查看
 mongoDB:
MongoDB其实只是一种非关系型数据库,其优势在于可以存储海量数据,
具备强大的查询功能,因此不宜用于缓存数据的场景。

   
应该说Memcached和Redis都能很好的满足解决我们的问题,它们性能都很高,总的来说,
可以把Redis理解为是对Memcached的拓展,是更加重量级的实现,提供了更多更强大的功能。
具体来说:

1.性能上:
性能上都很出色,具体到细节,由于Redis只使用单核,而Memcached可以使用多核,
所以平均每一个核上Redis在存储小数据时比Memcached性能更高。
而在100k以上的数据中,Memcached性能要高于Redis,
虽然Redis最近也在存储大数据的性能上进行优化,但是比起 Memcached,还是稍有逊色。

2.内存空间和数据量大小:
MemCached可以修改最大内存,采用LRU算法。Redis增加了VM的特性,突破了物理内存的限制。

3.操作便利上:
MemCached数据结构单一,仅用来缓存数据,
而Redis支持更加丰富的数据类型,也可以在服务器端直接对数据进行丰富的操作,
这样可以减少网络IO次数和数据体积。

4.可靠性上:
    MemCached不支持数据持久化,断电或重启后数据消失,但其稳定性是有保证的。
    Redis支持数据持久化和数据恢复,允许单点故障,但是同时也会付出性能的代价。

5.应用场景:
    Memcached:动态系统中减轻数据库负载,提升性能;做缓存,适合多读少写,大数据量的情况
    (如人人网大量查询用户信息、好友信息、文章信息等)。
    Redis:适用于对读写效率要求都很高,数据处理业务复杂和对安全性要求较高的系统
    (如新浪微博的计数和微博发布部分系统,对数据安全性、读写要求都很高)。

需要慎重考虑的部分

1.Memcached单个key-value大小有限,一个value最大只支持1MB,而Redis最大支持512MB
2.Memcached只是个内存缓存,对可靠性无要求;而Redis更倾向于内存数据库,因此对对可靠性方面要求比较高
3.从本质上讲,Memcached只是一个单一key-value内存Cache;而Redis则是一个数据结构内存数据库,支持五种数据类型,
 因此Redis除单纯缓存作用外,还可以处理一些简单的逻辑运算,Redis不仅可以缓存,而且还可以作为数据库用
4.新版本(3.0)的Redis是指集群分布式,也就是说集群本身均衡客户端请求,各个节点可以交流,可拓展行、可维护性更强大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: