一、缓存通常是这样的:先查缓存,查不到就查DB,若是DB查不到就结束,DB查到了就写入缓存。缓存
若是用户一直在大量地查询不存在的数据,则全部的请求都会落到DB,并且没有数据写入缓存。生命周期
解决方法:把查不到值也缓存下来,好比{"555": null},不过能够把这种缓存的生命周期调短一点。同步
二、若是大量的缓存过时时间设置成同样的,那么他们会在同一时间失效,DB的压力会在一瞬间骤增。请求
解决方法:能够把缓存的过时时间设置成相互错开1-5秒,秒数随机。方法
三、若是数据不是很大,但查询量很大,能够在应用启动时,把全部的数据都加载到缓存中,并且设置成永不失效。数据
但注意:每一项对底层数据的修改要同步到缓存,不然会形成错误.查询