redis mysql完美结合 为啥Redis/Mongo这么快,就不能直接替代mysql吗?
为啥Redis/Mongo这么快,就不能直接替代mysql吗?
您好,我是一名互联网行业开发工程师,同时也是优质vlog领域创作者,欢迎关注我!
当今互联网缓存中间件大多都使用了redis、mongodb等nosql数据库,目前也有很成熟的方案,但为啥还要用关系型数据库呢?下面探探谈谈我的理解:
1、redis等数据库跑的是内存,内存贵,成本高
2、虽然redis、mongodb也能实现持久化到硬盘,但是丢数据的风险有点大
3、对于ACID,redis等nosql保证不了,只有关系型数据库才能保证,简单来说就是nosql不支持事务,一致性、原子性等不能保证
4、nosql数据库关联查询不是很方便
5、关系型数据库可以适合大部分甚至所有开发场景
6、redis、mongodb给关系型数据分担压力是可以的,作为缓存中间件来使用,但是数据底层还是要用关系型数据库
最后
redis等nosql数据库是快,毕竟是内存操作,用起来是可以分担关系型数据库压力,但关系型数据库也是必不可少的,希望我的回答能帮到你!
redis mysql有几种用法?
首先要知道mysql存储在磁盘里,redis存储在内存里,redis既可以用来做持久存储,也可以做缓存,而目前大多数公司的存储都是mysql redis,mysql作为主存储,redis作为辅助存储被用作缓存,加快访问读取的速度,提高性能
那么为什么不直接全部用redis存储呢?
我的看法是:因为redis存储在内存中,如果存储在内存中,存储容量肯定要比磁盘少很多,那么要存储大量数据,只能花更多的钱去购买内存,造成在一些不需要高性能的地方是相对比较浪费的,所以目前基本都是mysql(主) redis(辅),在需要性能的地方使用redis,在不需要高性能的地方使用mysql,好钢用在刀刃上
貌似其他回答都没有说到这一点:redis的持久化功能,还可以防缓存雪崩。应该说这才是redis支持持久化的必要性所在。
例如假设后台架构是redis mysql,且redis关闭了持久化,redis服务器某天突然宕机,丢失了内存所有缓存,当redis服务器恢复后,必然要重新从mysql拿数据做缓存,如果读数据请求非常集中,mysql可能就瘫痪了,此即为缓存雪崩。
如果遇到土豪公司只用redis数据库而不用mysql,就没有什么缓存雪崩问题,因为此时redis根本就不是缓存功能而是存储功能了。
redis mysql完美结合 redis和mysql怎么配合使用 redis一般用来干嘛
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。