redis缓存介绍
【1】缓存处理流程
前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果
【2】缓存穿透
【2.1】什么是缓存穿透
缓存穿透是指缓存和数据库中都没有的数据,用户不断发起请求,如发起key为“101010”的数据而key所对应的数据为不存在的数据。这时的用户很可能是攻击者,会不断的发起请求攻击数据库。从而导致数据库压力过大。
限制目标
登录:限制同一个人在单位时间内访问同一个方法的次数。
未登录:限制同IP在单位时间内访问同一个方法的次数。
【3】缓存击穿
缓存击穿指的的缓存中灭有但是数据库中有的数据(一般是缓存时间到期),这时候由于并发用户特别多,同时读缓存没读到数据,又同时去数据库读取数据,引起数据库压力瞬间增大。
限制目标不同的人单位时间内对同一一个方法的访问频率
【4】缓存雪崩
缓存雪崩就是缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机,和缓存击穿不同的是:缓存击穿指的是并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查找数据库。
限制目标:给全体缓存添加不同的超时时间