随笔 - 434,  文章 - 0,  评论 - 463,  阅读 - 46万

分享一道面试题,问出这种问题,我觉得实在是也没什么意思。

但是今天还是稍微来分析一下,毕竟总会有人问 1 加 1 为什么等于 2。

首先,我们来想一下,既然是用来做缓存,必须要符合哪些特征呢?

698ed0f4923646d592c7928f87842f3c.gif

 

缓存所要具有的基本特征

访问速度要快,不然我直接去数据库查岂不是更好,毕竟就是为了提升某些常态化数据的提取速度和减轻数据库压力,才去使用的缓存模块。

支持的存储方式要符合多方面的系统需要,比如不同语言编写的系统交互,是不是要去查询同一个缓存。

要比单纯读数据库更加节约成本。

能保存的数据量要够多,这样才能放得下足够多的缓存,不然我放上十条八条的数据就满了,这成什么样子。

为什么不用 MongoDB 呢?

回到题目上去,那么为什么要用 Redis,而不是使用 MongoDB 呢?

 

首先 Redis 完全符合上面我们说的几个特征,而且还是基于内存、可持久化的数据库,并且是非常友好的 Key-Value 键值对的方式存储。

 

而 MongoDB 数据库作为非结构化的文件数据库,其功能和特性并不能支持大多数的缓存数据的存放,只会徒劳增加成本。

 

MongoDB 的更多使用方式还是存储一些大文件之类的数据,不是专注于去实现一些缓存数据的存储。

 

Redis 就不一样了,他本身就是应运而生的,除了做缓存数据库虽然还能去实现消息队列之类的功能,但是那都是一些附属价值;Redis 最核心的价值还是缓存数据库,多种数据结构、丰富的 API 使 Redis 在目前环境中还暂时找不到太多对手。

 

最后这道面试题就算说完了,如果面试问到这种问题,还是要说一下为什么要做缓存,千万不能单纯的比较两者之间的不同之处,有些东西根本就不能拿来比较。

posted on   剽悍一小兔  阅读(57)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示