高并发系统缓存设计
核心问题:如何同时满足高时效性和数据准确性
为什么有些对数据实时性,准确性要求极高的系统,不能使用缓存?
答:数据实时性,准确性要求极高的系统 , 举个例子的话,就想到了银行的存取款系统,这系统如果使用读缓存, 用户会疯掉。 因为钱转过来了却需要一段时间以后看到,如果使用写缓存,银行会疯掉,因为多存储的不一致性会让很多数据丢失。所以对于实时性准确性要求极高的系统,无论访问量多大,最多采用排队的异步方式,而不能使用缓存提高效率更新策略
主动更新。使用定时Job,定期向缓存中刷/更新数据。这种对实时性要求不高的才使用。
被动更新。存在改变缓存的接口调用,在调用时,更新缓存。
主动+被动更新。这种是在接口调用同时查看缓存是否到了更新时期,实现方法是在缓存的model中内置定时器