有时,您将整个对象图存储到缓存中,或者具有使缓存失效的集合的对象有点棘手。
有什么技术可以知道何时使缓存无效?
对于简单的对象,您可以在任何时候无效更新/保存对象,您可以简单地进行额外调用并刷新缓存。
当您拥有丰富的对象时,例如:
User
Locations
Sales
History
现在,只要用户属性或位置/销售/历史记录集合数据发生变异,此用户对象就会变为“脏”。
我认为一个简单的方法是更新用户对象的'modified_date'属性,并可能将modified_date保留为缓存键的一部分,并调用获取用户行然后比较然后拉对象来自缓存的图表,基于密钥中的modified_date:
user_cache_key + user.id + user.modified_date
此方法的唯一问题是,您必须确保在更新任何对象依赖项时更新“modified_date”。
这个问题还有其他可能的解决方案吗?