缓存更新的另一种方法:双删策略
上一篇说到缓存的更新操作是非幂等操作,会出现并发更新的问题。那用缓存删除操作实现缓存更新行不行,您可能觉得奇怪,删除了缓存如何更新,假设读业务先读取缓存,如果发现没有就回溯到读数据库找数据,然后再更新回缓存。这种方式叫做懒加载,是在查询到数据库时,主动更新缓存。就是说删除同样能达到更新缓存的目的,为什么要用删除,因为删除操作是没状态的,无论删除多少次,它的结果都是一样的,所以是天然的幂等操作。现在问题转移到,如何在数据更新或添加时保证缓存清除干净的问题。
上一篇说到缓存的更新操作是非幂等操作,会出现并发更新的问题。那用缓存删除操作实现缓存更新行不行,您可能觉得奇怪,删除了缓存如何更新,假设读业务先读取缓存,如果发现没有就回溯到读数据库找数据,然后再更新回缓存。这种方式叫做懒加载,是在查询到数据库时,主动更新缓存。就是说删除同样能达到更新缓存的目的,为什么要用删除,因为删除操作是没状态的,无论删除多少次,它的结果都是一样的,所以是天然的幂等操作。现在问题转移到,如何在数据更新或添加时保证缓存清除干净的问题。