Redis/Memcache/MongoDb 三者区别和应用场景

数据存储

  • MongoDB的存储格式是文档类型,是一种类型json的格式,这样有机会对某些字段建立索引,可以简单的模仿一下关系型数据库,而且MongoDB确实也有db,table的概念
  • Memcache的存储格式是Key-Value模式,但是很遗憾的是,Value的格式只能是字符串,这也限制了Memcache的应用范围
  • Redis的存储格式和Memcache一样,也是Key-Value模式,但是Redis有另外的实现,除了基本的string类型,redis还实现了hash,list,set,zset数据类型

安全验证

  • Redis有权限验证,不过是全局的,一号在手,天下我有
  • Mongo的权限验证类似RBAC,给不同的库建立了不同的账号,并分配账号权限
  • Memcache没有自己的权限验证,只能通过防火墙等手段限制

数据有效期

  • Redis可以给key添加过期时间,这里需要注意的是,这个过期时间是针对顶级key的,意味着你不能给list里面某个单独元素或者hash里面的单独字段设置时间
  • Memcache也是可以设置过期时间的,这里推荐使用时间戳来设置,避免30天的那个界限。
  • MongoDB本身其实可以看作是一个数据仓库了,不存在过去时间这一说

数据持久化

  • Redis本身支持两种持久化,快照和AOF追加方式
  • Mem很遗憾,并没有持久化功能,断电就GG
  • MongoDB,你就当他是数据库吧!

特色功能

  • Redis没发现
  • Memcache多用于分布式缓存,通过addserver的方式,将不同的键保存到不同的服务器上面,一台GG也不影响其他的服务器,当然这里面也就存在一个问题,各个服务器的数据不同步
  • MongoDB有很典型的主从复制,现在官方主推副本集

应用场景

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

其他

  • Memcached单个key-value大小有限,一个value最大只支持1MB,而Redis最大支持512MB
  • Memcached只是个内存缓存,对可靠性无要求;而Redis更倾向于内存数据库,因此对对可靠性方面要求比较高
  • 从本质上讲,Memcached只是一个单一key-value内存Cache;而Redis则是一个数据结构内存数据库,支持五种数据类型,因此Redis除单纯缓存作用外,还可以处理一些简单的逻辑运算,Redis不仅可以缓存,而且还可以作为数据库用
  • 新版本(3.0)的Redis是指集群分布式,也就是说集群本身均衡客户端请求,各个节点可以交流,可拓展行、可维护性更强大。
  • MongoDB不支持事务。
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值