旁路缓存:redis是如何工作的?

计算机默认有两种缓存:
1.cpu中的末级缓存,即LLC,用于缓存内存中的数据,避免从内存中取数据。
2.内存中的高速页缓存,即page cache,用来缓存磁盘中的数据,避免每次从磁盘中存取数据。在这里插入图片描述
应用如果想要修改数据,既可以在缓存中修改,也可以在后端数据库中进行修改,所以redis就出现了两种缓存模式:只读缓存和读写缓存
只读缓存:先删除redis中的数据,修改数据库中的数据,然后从数据库中读取数据并更新redis。好处就是数据存入数据库中,能够保存数据的可靠性在这里插入图片描述读写缓存:直接在redis中进行数据的修改。读写缓存又分为以下两种:1.异步写回策略 2.同步只写策略
在这里插入图片描述
选择哪种方式取决于业务需求:
如果对写请求进行加速的话,就采用读写缓存,如果不希望存在数据丢失的风险,就采用同步直写的策略,否则就采用异步写回的策略
如果写请求很少的话,或者只需要提高度请求的响应耗时的话,就采用只读的方式。

缓存的淘汰机制

我们可以通过以下命令来设计缓存容量
CONFIG SET maxmemory 4gb

内存淘汰机制:在这里插入图片描述
noevction:当缓存满的时候,再有写请求的话直接返回错误。

在设置了过期时间的数据中进行淘汰的四种淘汰策略,它们筛选的候选数据范围被限制在了设置了过期时间的键值对上。正因为如此,即使缓存没有被写满,这些数据如果过期了也会被删除。
在所有数据中进行淘汰的三种淘汰策略,即使它的过期时间还没到,也需要被删除。当然,如果它的过期时间到了但是未被策略选中也会被删除。

如何处理被淘汰的数据?
一般来说,如果这个数据是干净的数据就直接删除,如果这个数据是脏数据就写回数据库。
但是对于redis,不管是干净的数据还是脏数据都会直接删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值