Redis-缓存

Redis-缓存_第1张图片
新增或者更新数据时,创建以后顺便存到redis中去【维护缓存】
获取的时候先从redis缓存中拿数据
如果拿数据的时候为空,则到数据库中拿数据,后再存到redis缓存中去
Redis-缓存_第2张图片
大量的商品【包括冷门商品】都进行上面的缓存,那么就很耗内存
针对每个数据进行缓存的时候 维护一个过期时间
查询的时候,我们对缓存时间做延期处理【超时延期】【读延期】,这样每天访问的数据就会一直在缓存中—【数据的冷热分离】

缓存击穿【缓存失效】

	商品上架、批量更新的时候,可能大批商品缓存过期时间一样,大量访问这个商品没有缓存,那个商品也没有缓存,导致大量请求到达数据库这边,导致数据库压力大抖动【但数据库还有】

解决方案
给商品进行过期时间进行随机设置【随机数】

缓存穿透

秒杀商品不小心被删掉,商品在整个后端都没有,导致前端大量请求过来通过get请求都没有【每次查都没有】
另外场景:知道链接规则,造一大堆不存在的商品,进行高并发的请求
解决方案
限流解决
java层面解决:缓存一个空值

你可能感兴趣的:(Redis,缓存,redis,数据库)