33、缓存同步策略与并发问题解决方案

缓存同步策略与并发问题解决方案

1. 缓存写入策略

在缓存操作中,有几种常见的写入策略,每种策略都有其适用场景和优缺点:
- Write - Around :只将数据写入主存储,不写入缓存。适用于那些很少或从不重读最近写入数据的“即写即忘”应用程序。但读取最近写入的数据时成本较高,因为会导致缓存未命中。
- Read - Through :仅在读取条目时将其写入缓存,这些条目已存储在另一个较慢的内存支持中。写入策略可以是Write - Back或Write - Around。该策略的特点是应用程序仅与缓存进行读取交互,缓存存储将在缓存未命中时从主存储读取数据。
- Refresh - Ahead :用于元素可能过期的缓存。对于即将过期且请求频繁的缓存条目,会主动(异步)从主源读取并更新。这样应用程序就不会感受到缓慢的数据库读取和缓存存储的影响。
- Cache - Aside :缓存位于应用程序一侧,仅与应用程序通信。与Read - Through不同,检查缓存或数据库的责任在于应用程序。应用程序首先检查缓存,若未命中,则额外检查数据库并将读取的值存储在缓存中。

选择最佳策略与实现缓存同样重要,选择不当可能会使数据库(或主存储)过载甚至崩溃。

2. 并发环境下的缓存问题

在单线程环境中,我们通常假设缓存对象的使用是安全的。但在并发环境中,会出现竞态条件问题。以简化的LFU缓存 set 方法为例:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值