缓存失效策略

当缓存中缓存容量已满或数据因失效而需要更新时,就需要从缓存中去掉一些旧数据。 究竟应该去掉哪些数据由缓存的失效策略决定,以下是常见的缓存失效策略:

  • LRU(Least Recently Used):即最近最少使用,这种策略将优先淘汰最近被请求最少的缓存数据。在实现上缓存的数据有一个最后被访问的时间戳(随缓存命中更新为当前时间),最后被访问时间离当前时间最远的缓存数据优先被淘汰。
  • LFU(Least Frequently Used):即最少使用,这种策略将优先淘汰访问次数最少的缓存数据。在实现上被缓存的数据有一个hit值(随缓存命中递增),hit值最小的缓存数据优先被淘汰。
  • FIFO(First In First Out):即先进先出,判断数据被写入的时间,离当前时间最远的数据优先被淘汰。