使用redis作为缓存,数据还需要存入数据库中吗?
我的答案是:
①.redis只是缓存,不是数据库如mysql,所以redis中有的数据库,mysql中一定有.
①.)收下要分析,当成千亿个请求同时访问过来,数据库为什么会扛不住?
①超大量的并发,数据库扛不住.
举个例子就明白了.
从这个角度来说,redis并不能帮什么忙.
②数据库存在低速设备上,每次访问数据库,都要经过io,即从磁盘调入内存的过程.这个才是使用redis等缓存机制的原因.
=====解答某些同学的提问,核心是,redis中存的数据,数据库中是否还要存的问题.
我的观点:
①.前提:mysql中存all即所有的数据(redis只是缓存的mysql中的部分数据),redis中缓存mysql中存在的访问量超级大的数据.
反方观点1:既然redis中存了,数据库为什么还要存呢?所以他们认为数据存入redis就不用存数据库了.
我的解答:
解答反方观点1:这个不用争,redis是当缓存用的,不是当数据库用的.
所以,咱们两种方式其实都是一样的,都解决不了,如果redis即内存崩溃了,然后重启redis之后,怎么快速的响应千万甚至过亿的请求.
我的方式:redis坏了,从数据库读取.
你的方式:redis坏了,从磁盘慢慢地恢复到redis,然后从redis读取.
反方解答我的质疑:mysql中存的是不经常访问的事情.
总结:
的确, 如果可以实现A机器崩溃时可以将redis中的数据转移到集群中机器B的内存中(我对这种方式的可行性是质疑的),那么,数据存入redis就可以不用存入mysql,但是这就颠覆了我及常人对缓存的理解,这其实就不是什么缓存,而是直接将redis当数据库来用了.
竟然还真有这种方式:
以上就是土嘎嘎小编为大家整理的使用redis作为缓存,数据还需要存入数据库中吗?_转)相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!