面试官:说一下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语法比较

 1MongoDB语法            MySql语法
 2
 3db.test.find({'name':'foobar'})             <==>          select * from test where name='foobar'
 4
 5db.test.find()                                      <==>          select *from test
 6
 7db.test.find({'ID':10}).count()             <==>          select count(*) from test where ID=10
 8
 9db.test.find().skip(10).limit(20)          <==>          select * from test limit 10,20
10
11db.test.find({'ID':{$in:[25,35,45]}})     <==>          select * from test where ID in (25,35,45)
12
13db.test.find().sort({'ID':-1})                 <==>          select * from test order by IDdesc
14
15db.test.distinct('name',{'ID':{$lt:20}}) <==>          select distinct(name) from testwhere ID<20
16
17db.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
18
19db.test.find('this.ID<20',{name:1})    <==>           select name from test whereID<20
20
21db.test.insert({'name':'foobar','age':25})    <==>       insertinto test ('name','age') values('foobar',25)
22
23db.test.remove({})                                     <==>       delete * from test
24
25db.test.remove({'age':20})                        <==>       delete test where age=20
26
27db.test.remove({'age':{$lt:20}})                <==>        delete test where age<20
28
29db.test.remove({'age':{$lte:20}})              <==>        delete test where age<=20
30
31db.test.remove({'age':{$gt:20}})              <==>         delete test where age>20
32
33db.test.remove({'age':{$gte:20}})            <==>         delete test where age>=20
34
35db.test.remove({'age':{$ne:20}})             <==>         delete test where age!=20
36
37db.test.update({'name':'foobar'},{$set:{'age':36}})<==> update test set age=36 where name='foobar'
38
39db.test.update({'name':'foobar'},{$inc:{'age':3}})<==> update test set age=age+3 where name='foobar'
40
41模糊查询:$regex
42
43db.test.find({"name":{$regex:"aaa"}})
44
45分组个数过滤
46
47db.getCollection('id_mapper').aggregate([{$group:{ _id :"$contract_id",count:{$sum:1}}},{$match:{count:{$gt:1}}}])
48
49判断是否为空
50
51db.getCollection('id_mapper').find({"sinocardid":{$in:[null]}})

面试官:说一下Redis和MongoDB的区别?[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C# UDP编程「建议收藏」

    C# UDP编程「建议收藏」引用:前一个专题简单介绍了TCP编程的一些知识,UDP与TCP地位相当的另一个传输层协议,它也是当下流行的很多主流网络应用(例如QQ、MSN和Skype等一些即时通信软件传输层都是应用UDP协议的)底层的传输基础,所以在本专题中就简单介绍下UDP的工作原理和UDP编程的只是,希望可以对刚接触网络编程的朋友起到入门的作用。一、UDP介绍UDP和TCP都是构建在IP层之上传输层

    2022年9月3日
  • pwm波控制舵机原理(转)[通俗易懂]

    pwm波控制舵机原理(转)[通俗易懂]文章转自:http://www.geek-workshop.com/thread-70-1-1.html一、关于舵机:舵机(英文叫Servo):它由直流电机、减速齿轮组、传感器和控制电路组成的一套自动控制系统。通过发送信号,指定输出轴旋转角度。舵机一般而言都有最大旋转角度(比如180度。)与普通直流电机的区别主要在,直流电机是一圈圈转动的,舵机只能在一定角度内转动,不能一圈圈转(数字舵机可…

    2022年6月17日
  • vim编辑器重要快捷键及vim设置「建议收藏」

    vim编辑器重要快捷键及vim设置「建议收藏」1.全选:ggVG2.跳转到文本最后一行:shift+g3.跳转到文本第一行:gg4.跳转到光标所选行的行首位置:05.跳转到光标所选行的行尾位置:shift+46.全部替换(替换无需确认)::%s/src/dst/g7.全部替换(每次替换需要确认)::%s/src/dst/gc8.查找:/string9.高亮显示查找到的内容::sethlsearch10.显示vim行号::setnu!11.到注释的开始:[/12.到注释的结束:]/13.撤销上一次操作:

    2022年9月1日
  • vmware虚拟机怎么下载安装(虚拟机安装教程win7视频)

    文章目录虚拟机VMware的下载虚拟机VMware的安装虚拟机VMware的下载虚拟机VMware的安装1.虚拟机VMware的下载官网地址:https://www.vmware.com/cn.html以下为官网界面选择“产品”—>“个人桌面”—>“WorkstationPro”选择“下载”(这里虽然是“试用Workstation15.5Pro”,但是点击“下载”之后,将会跳转到“Workstation16Pro”的下载界面)根据自己电脑的系统,比如你的电脑是Wi

    2022年4月17日
  • 理解Go语言的nil[通俗易懂]

    理解Go语言的nil[通俗易懂]   转载地址:https://studygolang.com/articles/9506   最近在油管上面看了一个视频:Understandingnil,挺有意思,这篇文章就对视频做一个归纳总结,代码示例都是来自于视频。nil是什么相信写过Golang的程序员对下面一段代码是非常非常熟悉的了:iferr!=nil{//dosomething…

    2022年11月1日
  • 服务器资源监控工具—nmon

    服务器资源监控工具—nmon      在性能测试过程中,对服务端的各项资源使用情况进行监控是很重要的。对于监控服务器资源的工具nmon是最好不过了。      nmon不仅可以监控内存使用情况、磁盘适配器、文件系统中的可用空间、CPU使用率、页面空间和页面速度、异步I/O(仅适用于AIX)、网络文件系统(NFS)、磁盘I/O速度和读写比率、服务器详细信息和资源、内核统计信息、消耗资源进程、运行队列信息等。而且它资源…

    2022年5月12日

发表回复

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

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