如何使用 Redis 缓存?

本文详细介绍了如何使用Redis作为缓存,包括旁路缓存策略、只读缓存与读写缓存的区别、数据一致性处理、缓存大小设置以及应对缓存雪崩、击穿和穿透的方法。探讨了先删除缓存还是先修改数据库的选择,并提出使用延迟双删策略确保数据一致性。
摘要由CSDN通过智能技术生成

编辑

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

如何使用 Redis 缓存

前言

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

旁路缓存

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

只读缓存

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

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

只读缓存的优点:

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

缺点:

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

读写缓存

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

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

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

  • 1、同步回写;

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

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

  • 2、异步回写。

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

优点:

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

缺点:

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

设置多大的缓存合适

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值