Redis和MongoDB的区别(面试受用)

Redis和MongoDB的区别(面试受用)

大家好,又见面了,我是全栈君。

项目中用的是MongoDB,但是为什么用其实当时选型的时候也没有太多考虑,只是认为数据量比较大,所以采用MongoDB。

最近又想起为什么用MongoDB,就查阅一下,汇总汇总:

之前也用过redis,当时是用来存储一些热数据,量也不大,但是操作很频繁。现在项目中用的是MongoDB,目前是百万级的数据,将来会有千万级、亿级。

就Redis和MongoDB来说,大家一般称之为Redis缓存、MongoDB数据库。这也是有道有理有根据的,

Redis主要把数据存储在内存中,其“缓存”的性质远大于其“数据存储“的性质,其中数据的增删改查也只是像变量操作一样简单;

MongoDB却是一个“存储数据”的系统,增删改查可以添加很多条件,就像SQL数据库一样灵活,这一点在面试的时候很受用。

Mongodb与Redis应用指标对比

MongoDB和Redis都是NoSQL,采用结构型数据存储。二者在使用场景中,存在一定的区别,这也主要由于
二者在内存映射的处理过程,持久化的处理方法不同。MongoDB建议集群部署,更多的考虑到集群方案,Redis
更偏重于进程顺序写入,虽然支持集群,也仅限于主-从模式。

Redis和MongoDB的区别(面试受用)

MongoDB语法与现有关系型数据库SQL语法比较

MongoDB语法            MySql语法

db.test.find({'name':'foobar'})             <==>          select * from test where name='foobar'

db.test.find()                                      <==>          select *from test

db.test.find({'ID':10}).count()             <==>          select count(*) from test where ID=10

db.test.find().skip(10).limit(20)          <==>          select * from test limit 10,20

db.test.find({'ID':{$in:[25,35,45]}})     <==>          select * from test where ID in (25,35,45)

db.test.find().sort({'ID':-1})                 <==>          select * from test order by IDdesc

db.test.distinct('name',{'ID':{$lt:20}}) <==>          select distinct(name) from testwhere ID<20

db.test.group({key:{'name':true},cond:{'name':'foo'},reduce:function(obj,prev){prev.msum+=obj.marks;},initial:{msum:0}})     <==>     select name,sum(marks) from testgroup by name

db.test.find('this.ID<20',{name:1})    <==>           select name from test whereID<20

db.test.insert({'name':'foobar','age':25})    <==>       insertinto test ('name','age') values('foobar',25)

db.test.remove({})                                     <==>       delete * from test

db.test.remove({'age':20})                        <==>       delete test where age=20

db.test.remove({'age':{$lt:20}})                <==>        delete test where age<20

db.test.remove({'age':{$lte:20}})              <==>        delete test where age<=20

db.test.remove({'age':{$gt:20}})              <==>         delete test where age>20

db.test.remove({'age':{$gte:20}})            <==>         delete test where age>=20

db.test.remove({'age':{$ne:20}})             <==>         delete test where age!=20

db.test.update({'name':'foobar'},{$set:{'age':36}})<==> update test set age=36 where name='foobar'

db.test.update({'name':'foobar'},{$inc:{'age':3}})<==> update test set age=age+3 where name='foobar'

模糊查询:$regex

db.test.find({"name":{$regex:"aaa"}})

分组个数过滤

db.getCollection('id_mapper').aggregate([{$group:{ _id :"$contract_id",count:{$sum:1}}},{$match:{count:{$gt:1}}}])

判断是否为空

db.getCollection('id_mapper').find({"sinocardid":{$in:[null]}})
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111446.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月20日 下午1:00
下一篇 2022年2月20日 下午1:00


相关推荐

  • 2021年计算机保研-假211真双非三无的失败保研经历(武大/复旦/计算所/华科/同济/上交)

    2021年计算机保研-假211真双非三无的失败保研经历(武大/复旦/计算所/华科/同济/上交)从知乎@孤芳倚花红转过来啦~一、个人情况学校:华中地区211,计算机科学与技术(感觉华中211CS水平都差不多)。英语:CET4-534,预推免CET6-447。夏令营的时候没有六级真的太伤了,第一次裸考没过,第二次忘了报名,幸亏第三次考过了预推免可以用上。成绩:专业排名3/140,预推免2/147。211只有rk1和非rk1,非rk1≈没学上。科研:国家级、省级大创各一项,均是负责人,前者OD,后者SOD。没有论文,但是有一定CV和DL的基础,不惧面试。竞赛:省一及以上数学建模、数学竞赛奖项

    2022年7月25日
    70
  • PHP5各个版本的新功能和新特性总结

    因为PHP那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣。本文将会介绍自PHP5.2起,直至PHP5.6中增加的新特征本文目录:PHP5.2以前:auto

    2021年12月27日
    60
  • 史上最好听的十首纯音乐推荐[通俗易懂]

    史上最好听的十首纯音乐推荐[通俗易懂]天然去雕饰,清水出芙蓉。不需要歌词我们就能感受到那或美丽忧伤,或轻灵欢快,或激昂艰辛的情绪。思绪随着旋律而起伏,心中莫名就有一种感动,无法用词语表达,无言却胜过万语千言。一、《LuvLetter》

    2022年8月4日
    8
  • Linux那些事儿之我是Hub(26)支持计划生育–看代码的理由

    Linux那些事儿之我是Hub(26)支持计划生育–看代码的理由北大校长马寅初先生曾斩钉截铁地跟讲:”中国人口太多是因为农村晚上没有电.”因此,为了支持计划生育这项基本国策,每一个男人都有义务认真看一下电源管理的代码.另一方面,虽然现在已经不住在农村了,但我一直坚定不移的认为,这个世界,最慢的是我家的网速,最快的是我家电表的转速.所以,为了了解如何让电表转速更慢,让我们一起来看看usb子系统里是如何支持电源管理的吧.上节说了应该从usb_sus…

    2022年5月30日
    34
  • 简单理解几种Java IO模型

    简单理解几种Java IO模型很多朋友在学习 NIO 的时候感觉比较吃力 对里面一些概念不是很明朗 本文杜撰了一个大嘴开饭店的故事 来类比 JavaIO 模型的演变 帮助理解几种模型的功能和特点 IO 分为磁盘 IO 和网络 IO 本文讨论的都是网络 IO 爪哇村的大嘴做得一手好菜 原本是和平饭店的厨子 对吃的东西悟性很高 工作之余喜欢研究各种创新菜 最近自创一道麻辣小龙虾 顾客们吃后反响强烈 于是 大嘴想自立门户 专门开店经营小龙虾

    2026年3月17日
    2
  • linux 注释crontab文件及crontab执行sh的坑

    linux 注释crontab文件及crontab执行sh的坑原来 在 Linux 下写了很多 crontab 来定时执行某些任务 今天有个需求 是要注释某些 c

    2026年3月20日
    2

发表回复

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

关注全栈程序员社区公众号