当前位置:   article > 正文

如何使用 Redis 缓存?_redis缓存

redis缓存

编辑

添加图片注释,不超过 140 字(可选)

如何使用 Redis 缓存

前言

对于 Redis 来讲,作为缓存使用,是我们在业务中经常使用的,这里总结下,Redis 作为缓存在业务中的使用。

旁路缓存

Cache Aside(旁路缓存)策略以数据库中的数据为准,缓存中的数据是按需加载的。它可以分为读策略和写策略。

只读缓存

只读缓存 从缓存中读取数据;如果缓存命中,则直接返回数据;如果缓存不命中,则从数据库中查询数据;查询到数据后,将数据写入到缓存中,并且返回给用户。

如果需要对数据进行修改的时候,直接修改数据库中的数据,然后删除缓存中的旧数据。

只读缓存的优点:

所有最新的数据都在数据库中,数据不存在丢失的风险。

缺点:

每次修改数据,都会删除缓冲,之后的请求会发生一次缓存缺失。

读写缓存

除了进行读操作外,数据的修改操作也会发送到缓存中,直接在缓存中对数据进行修改。此时,得益于Redis的高性能访问特性,数据的增删改操作可以在缓存中快速完成,处理结果也会快速返回给业务应用,这就可以提升业务应用的响应速度。

当然 Redis 是内存数据库,一旦掉电或宕机,内存中的数据就有可能存在丢失。

针对这种情况,一般会有两种回写策略:

  • 1、同步回写;

写请求发给缓存的同时,也会发给后端数据库进行处理,等到缓存和数据库都写完数据,才给客户端返回。这样,即使缓存宕机或发生故障,最新的数据仍然保存在数据库中,这就提供了数据可靠性保证。

不过,同步直写会降低缓存的访问性能。这是因为缓存中处理写请求的速度是很快的,而数据库处理写请求的速度较慢。即使缓存很快地处理了写请求,也需要等待数据库处理完所有的写请求,才能给应用返回结果,这就增加了缓存的响应延迟。

  • 2、异步回写。

所有写请求都先在缓存中处理。可以定时将缓存写入到内存中,然后等到这些增改的数据要被从缓存中淘汰出来时,再次将它们写回后端数据库。这样一来,处理这些数据的操作是在缓存中进行的,很快就能完成。只不过,如果发生了掉电,而它们还没有被写回数据库,就会有丢失的风险了。

优点:

被修改的数据永远在缓存中,不会发生缓存缺失,下次可以直接访问,不在需要向数据库中进行一次查询。

缺点:

数据可能存在丢失的风险。

设置多大的缓存合适

缓存能够提高响应速度,但是缓存的数量也不是越多越好?

1、大容量缓存是能带来性能加速的收益,但是成本也会更高;

2、在一些场景中,比如秒杀,少量的缓存承担的就是绝大部分的流量访问。

系统的设计选择是一个权衡的过程:大容量缓存是能带来性能加速的收益,但是成本也会更高,而小容量缓存不一定

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/719086
推荐阅读
相关标签
  

闽ICP备14008679号