K - key typeV - value typepublic class ExpirableCache<K,V> extends Object implements Serializable
This is like a map, but the setters also take an expire time which will mean the items in the cache will be automatically deleted. Also, every so often (e.g. 2 minutes) all items are checked for expiration. If no timetolive is set, it will default to 1 day. The max time to live is one day.
This is synchronized so that all access is safe.
Note: evictions are checked for periodically, but only when the map is accessed (and even then only every few minutes). You can check for evictions externally, or clear the map if you are done with it.
| Modifier and Type | Class and Description |
|---|---|
static class |
ExpirableCache.ExpirableCacheUnit
unit of time for expirable cache
|
| Constructor and Description |
|---|
ExpirableCache() |
ExpirableCache(ExpirableCache.ExpirableCacheUnit expirableCacheUnit,
int defaultTimeToLive) |
ExpirableCache(int defaultTimeToLiveInMinutes) |
| Modifier and Type | Method and Description |
|---|---|
void |
checkForEvictions(boolean onlyCheckIfNeeded)
check and remove elements that are stale
|
void |
clear()
delete the cache
|
static void |
clearAll()
clear out all caches everywhere (session, request, context, etc)
|
V |
get(K key)
get a value or null if not there or expired
this will check for eviction, and evict if evictable
|
int |
getCacheEvictions()
number of items evicted from cache
|
int |
getCacheHits()
number of items successfully retrieved from cache
|
int |
getCacheInserts()
number of items inserted into the cache
|
long |
getDefaultTimeToLiveInMillis()
expose the length of cache
|
void |
put(K key,
V value)
put a value into the cache, accept the default time to live for this cache
|
void |
put(K key,
V value,
int timeToLiveInMinutes)
put a value into the cache, accept the default time to live for this cache
|
int |
size(boolean evictEvictables)
number of elements in map (and check for
|
static String |
staticToString()
string representation of cache
|
String |
toString()
string representation of cache
|
public ExpirableCache()
public ExpirableCache(int defaultTimeToLiveInMinutes)
defaultTimeToLiveInMinutes - time in minutes is the default cache time to live for contentpublic ExpirableCache(ExpirableCache.ExpirableCacheUnit expirableCacheUnit, int defaultTimeToLive)
defaultTimeToLive - time in whatever unit is the default cache time to live for contentexpirableCacheUnit - is minutes or secondspublic void clear()
public long getDefaultTimeToLiveInMillis()
public void put(K key, V value)
key - key typevalue - value typepublic void put(K key, V value, int timeToLiveInMinutes)
key - key typevalue - value typetimeToLiveInMinutes - time to live for this item in minutes.
If -1 then use the defaultpublic static void clearAll()
public void checkForEvictions(boolean onlyCheckIfNeeded)
onlyCheckIfNeeded - true if only check every so often (e.g. every two minutes)public V get(K key)
key - key typepublic int size(boolean evictEvictables)
evictEvictables - true if we should evict values that are stale
(even if recently checked)public int getCacheInserts()
public int getCacheEvictions()
public int getCacheHits()
public String toString()
toString in class ObjectObject.toString()public static String staticToString()
Copyright © 2025 OWASP. All rights reserved.