io.undertow.server.handlers.cache

## 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

### Nested Class Summary

Nested Classes
`static class` `LRUCache.CacheEntry<K,V>`

### Constructor Summary

Constructors
Constructor and Description
`LRUCache(int maxEntries, int maxAge)`
`LRUCache(int maxEntries, int maxAge, boolean fifo)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `add(K key, V newValue)`
`void` `clear()`
`V` `get(K key)`
`V` `remove(K key)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### LRUCache

    public LRUCache(int maxEntries,
                    int maxAge)

#### LRUCache

    public LRUCache(int maxEntries,
                    int maxAge,
                    boolean fifo)

### Method Detail

#### add

    public void add(K key,
                    V newValue)

#### get

    public V get(K key)

#### remove

    public V remove(K key)

#### clear

    public void clear()