缓存穿透:比如说,一个用户的基本信息(缓存key为uid)或订单的信息(缓存key为order_id),缓存或数据库里都没有这个uid或order_id的信息,但是如果有请求要获取这个信息,那么逻辑处理时就会跨过缓存这一层去查数据库,如果这样的请求短时间内非常多可能会压垮数据库。
缓存击穿:比如说,订单的信息(缓存key为order_id)在缓存中有过期时间,如果在特定的时间这个订单信息在缓存中已经过期但是尚未从数据库查出最新的信息set到缓存上,恰好这个时候大并发请求过来了,那么这些请求的逻辑处理也会跨过缓存直接查询数据库,这个大并发的查询可能会压垮数据库。
缓存雪崩:上面说到缓存击穿是一个key在特定时间过期,那么如果缓存系统中大量的缓存在同一时间或时间段内过期,这个时候的请求也会跨过缓存直达数据库,数据库压力陡增也可能会压垮数据库。
网友评论