概述
缓存失效就是在 nginx 中设置本地缓存时设置了一个过期时间,比如是 10 分钟, 10 分钟后会自动过期。
缓存失效的问题
同时来了 1000 个请求,10 分钟后会失效(同时来,也是同时失效), 这就会导致大量的请求高并发到 redis 上去了,同时网络负载也会加重。
缓存失效解决方案
缓存失效解决方案就是:让所有缓存的过期时间尽量保证不在同一时间失效,可以使用一个过期区间, 在这个区间内随机过期时间。
-- 获取随机数,再设置到缓存中
math.randomseed(tostring(os.time()):reverse():sub(1, 7))
local expireTime = math.random(600, 1200)
cache_ngx:set(productCacheKey, productCache, expireTime)
网友评论