场景需求
另一个简单的场景,希望数据被查询后,能缓存一段时间,但数据被更新、删除后,希望查询接口能查出最新数据。
解决思路
查询时,仍然按照“先查缓存-没命中则加载数据-回写缓存”的流程;
数据变更时,删除缓存。
优点:
方案简单,能及时更新缓存数据。
缺点:
可能出现缓存与DB数据不一致,更多信息
总结:
能适用于大部分常见场景,能容忍较低概率的db与缓存数据一定时间内存在不一致的场景。
针对“查询-删除”的缓存使用模式,EdsCache提供了“一致性”功能解决该问题(连接)。
EdsCache使用样例
查询流程:
@EdsCache(key = “user_prefix”, expire = 120)
public UserDTO getUser(@EdsCacheKey Long id){
return userDao.getUser(id);
}
删除流程:
@EdsCacheDelete(key = “user_prefix”)
public void deleteUserWithCache(@EdsCacheKey Long id){
userDao.removeUser(id);
}
本文来自网易实践者社区,经作者陈婷授权发布。
相关阅读:EdsCache通用缓存框架——(1)总览导航