数据库优化-redis缓存更新的三种策略

本文探讨了三种Redis缓存更新策略,包括内存淘汰的自动管理、超时剔除确保一致性、以及主动更新提高数据同步。通过实例分析,适合不同场景的应用及主动更新时需注意的问题,如缓存操作时机和事务处理。

目前redis缓存更新存在3种主流策略,分别是:内存淘汰、超时剔除、主动更新。

一、介绍

1、内存淘汰

该策略不用自己维护,利用redis的内存淘汰机制,当内存不足时自动淘汰部分数据。下次查询时自动更新缓存。
一致性:差
维护成本:无

2、超时剔除

给缓存数据添加有效时间,到期后自动删除缓存。下次查询时更新缓存。
一致性:一般
维护成本:低(只用编写一个添加时间的代码)

3、主动更新

编写业务逻辑,在修改数据库的同时,更新缓存。
一致性:好
维护成本:高(需要编写整套业务逻辑代码)

二、应用场景

以博客系统为例:
博客系统里面的博客类型,长时间不会改变,即可使用内存淘汰策略。
但是所有博客的list,这种时刻都在改变的就需要使用主动更新策略。

三、使用主动更新时需要考虑的问题

1、删除缓存还是更新缓存?
答:删除缓存,如果每一次更新数据库的同时更新缓存,那么如果用户进行更新数据库操作的次数远大于读数据库的次数。那么此时无效写操作较多。所有尽量选择进行第一次写操作时删除缓存,进行读操作时再更新缓存。
2、如何保证缓存与数据库的操作的同时成功或失败
答:单体系统,将缓存与数据库操作放在一个事务。分布式系统,利用TCC等分布式事务方案
3、先操作缓存还是先操作数据库?
答:都可以,根据实际业务需求调整。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

igxia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值