Redis(一)分布式缓存的作用

发布于: 20 小时前

一、为什么要使用缓存?

缓存最经典的场景是用在电商的商品上,一般来说,电商的某个商品的信息,在一天之内几乎都不会做任何改变,但是这个商品的查询可能是非常频繁的,一天可能就被浏览了几百万次。如果每次商品都从数据库查询出来,一次查询也许需要 1s,但是从缓存中查询,可能只需要 20ms 就可以了。还有如果高峰期 QPS 过高,数据库是承载不了太高的 QPS 的,一般也就几千的 QPS,但是缓存承载几万甚至几十万都没有问题。缓存,通常来说有两个主要用途:高性能和高并发。

二、缓存是如何实现高性能的?

假设一个请求过来,是直接查库的话,需要 800 ms,查询缓存的话只需要 20 ms。用户 A 过来发现缓存没有这条数据,会直接查库,耗费 800 ms,并缓存到 redis 中,用户 B 过来发现缓存有值,只需要 20 ms就可以响应给用户了,后续更多用户查询这条数据的请求也都可以直接从缓存中读取,只需要 20ms 就可以了。

三、缓存是如何实现高并发的?

假设中午高峰期有 100 万用户同时访问系统,QPS 达到 5000,如果数据库直接承载每秒 5000 个请求,可能会宕机;而使用缓存的话别说 4000/s,4w/s也没问题。

四、为什么数据库支撑不了高并发,而缓存可以?

缓存是走内存的,内存天然就支撑高并发。而数据库查询是走硬盘的,内存的访问速度比内存快很多,通常的说法是内存的访问速度是纳秒级的,而硬盘的访问速度是微秒级的,相差了 10 万倍左右。

用户头像

奈何花开

关注

还未添加个人签名 2019.05.14 加入

还未添加个人简介

评论

发布
暂无评论
Redis(一)分布式缓存的作用