Content #
只看数据的访问时间,使用 LRU 策略在处理扫描式单次查询操作时,无法解决缓存污染。
扫描式单次查询操作,指应用对大量的数据进行一次全体读取,每个数据都会被读取,而且只会被读取一次。
此时,因为这些被查询的数据刚刚被访问过,所以 lru 字段值都很大。在使用 LRU 策略淘汰数据时,这些数据会留存在缓存中很长一段时间,造成缓存污染。如果查询的数据量很大,这些数据占满了缓存空间,却又不会服务新的缓存请求,此时,再有新数据要写入缓存的话,还是需要先把这些旧数据替换出缓存才行,这会影响缓存的性能。