Class LRUCache<K,V>

java.lang.Object
io.undertow.server.handlers.cache.LRUCache<K,V>

public class LRUCache<K,V> extends Object
A non-blocking cache where entries are indexed by a key.

To reduce contention, entry allocation and eviction execute in a sampling fashion (entry hits modulo N). Eviction follows an LRU approach (oldest sampled entries are removed first) when the cache is out of capacity.

This cache can also be configured to run in FIFO mode, rather than LRU.

Author:
Jason T. Greene, Stuart Douglas
  • Constructor Details

    • LRUCache

      public LRUCache(int maxEntries, int maxAge)
    • LRUCache

      public LRUCache(int maxEntries, int maxAge, boolean fifo)
  • Method Details

    • add

      public void add(K key, V newValue)
    • get

      public V get(K key)
    • remove

      public V remove(K key)
    • clear

      public void clear()