在我们的开发项目中,为了接口的实现效率以及减小服务器的运行压力,常常需要设置缓存。
对于缓存的更新策略,有两种常见的更新方案:
-
懒惰式加载。客户端先查询Memcached,如果命中,则返回结果;如果没命中(没有数据或已过期),则从数据库中获得醉心数据,并写回到Memcached中,最后返回结果。这种方法直接、简单。但是在高并发的场景下,突然失效会让后端数据库的压力骤增。
-
主动更新。默认缓存永不失效。当有数据需要更新时,同时也会把最新数据写回到Memcached中。这种更新如果耗时过长,应该使用异步的更新,如放在消息队列中。
对于第一种懒惰式加载,适用于刷新缓存快,接口调用频繁的情况。
对于第二种主动更新,适用于刷新缓存过久,接口调用频率低的情况,需要有定时任务去刷新。
网友评论