redis 延时双删的作用
时间: 2023-10-27 18:51:42 浏览: 72
redis延时处理思路思维导图
Redis延时双删是一种用于防止缓存穿透的技术。缓存穿透指的是请求的数据在缓存中不存在,导致请求直接落到数据库上,造成数据库压力过大。为了避免缓存穿透,可以使用布隆过滤器等技术,但是不是完全可靠。因此,延时双删是一种备选方案。
具体实现方法是:当一个请求查询的数据在缓存中不存在时,Redis中会设置一个短时间内不过期的key,然后请求会去数据库中查询数据,如果查询到了,就会把数据存入缓存中。此时,再次查询该数据时,缓存中已经存在了,直接返回。如果查询不到数据,就会在数据库中插入一个空数据,然后设置一个比较短的过期时间。此时再次查询该数据时,缓存中不存在,就会去数据库中查询,但是由于第一次查询已经插入了空数据,因此不会再次插入,而是直接返回空数据。这时,再次查询该数据时,缓存中已经存在了空数据,就不会再次去数据库中查询,而是直接返回空数据。
延时双删的作用是,为了防止用户在极短的时间内多次请求同一个不存在的数据,造成数据库压力过大。在第一次查询时,设置一个比较长的过期时间,可以让后续请求能够直接从缓存中获取数据,避免频繁地去数据库中查询。在第二次查询时,设置一个比较短的过期时间,可以让空数据在一段时间后被清除,避免占用过多的缓存空间。
阅读全文