老师,如果用这个本地缓存的话,那怎么保证一致性呢
来源:5-8 本地数据热点缓存(下)

qq_福森_0
2020-03-05
如题
写回答
2回答
-
weixin_慕桂英2091354
2020-03-18
efreshAfterWrite(long, TimeUnit) -> 机制是并非超时时间到就自动刷新,而是请求 get的时候才会触发refresh,默认refresh是同步请求新值,可以重写refresh方法改成异步。如果有大量并发请求的时候,只会有一个请求get->reload同步执行,其他线程返回旧值.
弊端
吞吐量低的应用,在超过过期时间时,大量并发get请求时,大部分拿到的是很久前的旧值,导致数据脏读。如何解决?
可以同时使用expireAfterWrite设置key过期时间,比如每2s刷新一次新值,设置expireAfterWrite为5s为过期时间,则当key值5s没有访问的话,则第5s的时候强制取load新值,解决了脏读问题,也同时避免了缓存穿透问题。00 -
龙虾三少
2020-03-05
没办法保证强一致
022020-08-04
相似问题