nosql深度学习,聊聊redis、mongodb的使用与区别

redis、mongodb我到底该爱哪里一个?

    • redis
      • 1.redis的优点
          • 1.支持多种数据类型
          • 2.它是一个内存数据库,性能极高
      • 2.redis的缺点
          • 1.处理不了海量数据
          • 2.应对不了复杂的业务处理
      • 3.redis的运用
          • 1.缓存 缓存 缓存!
    • mongoDB
      • 1.mongoDB的优点
          • 1.扩展性强(可以代替mysql?)
          • 2.储存数据格式为json
          • 3.蛇皮储存方式
      • 2.mongDB的缺点
      • 3.mongDB的运用

友情提示:这篇博文是给刚入门的小白看的,大佬们请自行绕道!

redis

1.redis的优点

1.支持多种数据类型

支持set,zset,list,hash,string这五种数据类型,且操作非常简单,貌似mysql数据库的数据类型更多吧,谁让它是nosql呢!

2.它是一个内存数据库,性能极高

你可能会问为什么内存数据库就快呢?我也不知道,但常理就是内存存储数据比硬盘储存数据快。并且官方号称支持并发11瓦特读操作,并发8瓦特写操作,可以说是相当彪悍了,这种牛逼不明觉厉,反正我是看不懂。

但随之而来问题就来了,电脑一关机它的数据不就立刻消失了?
redis使用RDB和AOF做数据的持久化存储。主从数据同时,生成rdb文件,并利用缓冲区添加新的数据更新操作做对应的同步。修改配置文件,进行重启,将硬盘中的数据加载进内存,时间比较久。在这个过程中,redis不能提供服务。
虽然不是很理解上面的话,但个人觉得意思大概是关机前redis会把数据通过某种方式存放到硬盘里,等开机的时候再进行恢复。

2.redis的缺点

1.处理不了海量数据

因为redis是内存数据库,作为一个数据暂时存放的区域很不错,但是要想让他存储大量数据就有点搞笑,因为人家是内存存储啊,谁家物理内存比天大啊,如此消耗内存,你还敢把它和别的服务部署在同一台服务器上吗?卡不死你!!!

2.应对不了复杂的业务处理

其实这个缺点说的有点白痴,既然都是nosql了,你还提什么复杂业务处理 ,直接上mysql数据库不就完事了?所以我想说的是Mysql搭配redis才是王道,所以用redis来收收缓存挺好的。

3.redis的运用

1.缓存 缓存 缓存!

做过一个商城项目,每当用户注册的时候,都会往redis里面放东西,你以为是用户的个人信息?那怎么可能,重要信息是不可能放到redis里面的,也放进去的也就是手机验证码、图片验证码、用户浏览商品信息、购物车商品结算、用户点赞等。反正就是一些热点数据,需要多次从数据库中获取以及储存,这个时候就用到了redis

mongoDB

1.mongoDB的优点

1.扩展性强(可以代替mysql?)

存储方式:虚拟内存+持久化,貌似它也有redis那样的内存储存

查询语句:是独特的Mongodb的查询方式,独特就比较秀,参照高阶的sql语句,它可以完成很多复杂性高的操作

2.储存数据格式为json

mongodb所负责部分以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。(如日志之类) ,这年头都是前后端分离,你不会搞,都不好意思说自己是web开放工程师了,前端和后端数据传递的格式就是json,你说亲民不亲?

3.蛇皮储存方式

热点数据放入内存中储存,达到查询效果高,用到次数不高数据放入硬盘空间储存,这点很秀啊。

2.mongDB的缺点

小弟不才,对于mongoDB数据库使用的不多,不过它既然不支持事务,那么在查询方面还是比不过mysql这样的数据库,而且它的开发文档不是很完全,完善。所以还有待我们去发掘。

3.mongDB的运用

小弟不才,对于mongoDB数据库使用的不多,目前只用它当作爬虫数据储存空间,至少在这点上它比redis强,爬虫爬的数据少说也有几十万条吧,把它存放到redis太浪费内存了吧,如果存放到mysql中又有点麻烦,又要建表,又要插入数据的类型判断,麻烦的很啊。

你可能感兴趣的:(MySQL数据库复习)