选择内存策略,要基于业务场景 —— 低一致性需求,高一致性需求

缓存的主动更新策略又分为以下三种:

Cache Aside Patter 是我们比较常用的缓存更新策略,其由缓存调用者在更新数据库时,在业务逻辑中设置缓存更新。对 Cache Aside Pattern ,有以下三个问题比较重要。
线程问题:使用先操作数据库,再删除缓存。先操作数据库再操作缓存,能减少发生问题的概率。
如下是两种线程不安全问题产生的场景,但是因为缓存的操作数据的速度是远远高于数据库写操作的速度的,因此先操作数据库再删除缓存,出现问题的可能性低。

在更新代码中,加入删除缓存的逻辑即可,代码示例如下:
@Overridepublic Result update(Shop shop) {if(shop == null){return Result.fail("店铺不能为 null");}// 更新数据库updateById(shop);// 删除缓存stringRedisTemplate.delete(CACHE_SHOP_KEY + shop.getId());return Result.ok();}