EdsCache通用缓存框架——(2.2)简单的查询-删除场景

达芬奇密码2018-06-22 15:21
场景需求
另一个简单的场景,希望数据被查询后,能缓存一段时间,但数据被更新、删除后,希望查询接口能查出最新数据。

解决思路
查询时,仍然按照“先查缓存-没命中则加载数据-回写缓存”的流程;
数据变更时,删除缓存。
优点:
方案简单,能及时更新缓存数据。
缺点:
可能出现缓存与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)总览导航