xins在高并发场景下的缓存穿透问题究竟该如何解决呢?
缓存穿透是指查询一个一定不存在的数据,由于缓存中没有,会去查询数据库,在高并发场景下,大量这样的请求会对数据库造成巨大压力。以下是一些解决xins在高并发场景下缓存穿透问题的方法:
解决方法 | 具体说明 |
---|---|
布隆过滤器 | 将所有可能存在的数据哈希到一个足够大的布隆过滤器中,当有请求过来时,先通过布隆过滤器判断数据是否存在。如果不存在,直接返回,避免查询数据库。 |
缓存空对象 | 当查询的数据不存在时,也将该查询结果(空值)存入缓存中,并设置一个较短的过期时间。这样下次同样的请求就可以直接从缓存中获取空值,而不会查询数据库。 |
接口层过滤 | 在接口层对请求进行过滤,对请求参数进行合法性检查,如判断参数是否合法、是否在合理范围内等,将不合法的请求直接拦截。 |