社会热点

为啥Redis/Mongo这么快,就不能直接替代mysql吗?

电脑版   2020-11-26 07:03  

为啥Redis/Mongo这么快,就不能直接替代mysql吗?现在基本互联网项目都使用了缓存技术满足业务需求,为啥还要使用关系型数据库:您好,我是一名互联网行业开发工

1

您好,我是一名互联网行业开发工程师,同时也是优质vlog领域创作者,欢迎关注我!

当今互联网缓存中间件大多都使用了redis、mongodb等nosql数据库,目前也有很成熟的方案,但为啥还要用关系型数据库呢?下面探探谈谈我的理解:

1、redis等数据库跑的是内存,内存贵,成本高

2、虽然redis、mongodb也能实现持久化到硬盘,但是丢数据的风险有点大

3、对于ACID,redis等nosql保证不了,只有关系型数据库才能保证,简单来说就是nosql不支持事务,一致性、原子性等不能保证

4、nosql数据库关联查询不是很方便

5、关系型数据库可以适合大部分甚至所有开发场景

6、redis、mongodb给关系型数据分担压力是可以的,作为缓存中间件来使用,但是数据底层还是要用关系型数据库

最后

redis等nosql数据库是快,毕竟是内存操作,用起来是可以分担关系型数据库压力,但关系型数据库也是必不可少的,希望我的回答能帮到你!

2

目前看来,关系型的数据库和非关系型的数据库是互补的,并不是互相取代的,因为这两者的适用场景不同。

关系型数据库适应场景是:业务复杂并且需要很多的关联,对读操作没有太大要求,但是需要对事务的支持。

非关系型数据库适用场景是:业务相对简单,对读操作要求很高,而且数据吞吐量大,还能支持快速扩容等场景。

因此,这两种数据库在未来都会一直存在,在各自的场景发挥自己的作用,每一种新技术的诞生都是为解决现有的一些痛处的,技术选型没有最好的,只有最适合的技术。

3

场景不一样,redis虽然也算一种数据库,但是一般更多的用于加速访问数据库数据

mongodb是非关系型数据库更多的用于快速存储数据

4

redis、mongodb等nosql数据库是当今互联网中首选缓存中间件,nosql数据库读取速度快,能够大大的提高运行效率。但是nosql数据库耗内存,对事务支持不够完善。

mysql是关系型数据库,存放持久化数据,将数据存储在硬盘中,读取速度较慢。支持事务。

nosql之所以代替不了mysql数据库主要原因:

  1. 使用nosql 持久化数据有丢失数据的风险。
  2. nosql对事务支持不是很完善,有事务需求的时候,还是需要使用mysql这类关系型数据库。

5

1、数据结构模型是需要关系连接的(nosql Redis存储是没有问题的)nosqlRedis读取不方便 几乎做不到

2、快是因为在内存中存储也就是说没有持久化 nosql Redis持久化 预估性能差不多少

3、逻辑及实现复杂程度远高于关系型数据库

6

我们就是用MongoDB替代sql,很好用。新版本也支持事务了,微服务的大杀器。当然了,内存价格确实昂贵,所以等数据量上去后,会考虑使用TiDB。

本文版权归原作者所有,如需商业用途或转载请与原作者联系。

分享

相关信息
 
李靓蕾会原谅王力宏吗

2021-12-30 14:01:01