Interface Cache<T>
-
- Type Parameters:
T- the type of objects to store.
- All Known Implementing Classes:
RedisCache
public interface Cache<T>Cache to store objects.The underlying cache implementation is free to expire objects before the configured (or requested) expiry time. Reasons for this can be memory pressure or (default) cache configuration.
In other words, there is no guarantee that a
cache.put(key, object)followed by acache.get(key)will return the object stored. In case the key is not foundnullwill be returned.- Author:
- Richard Kohlen
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description Tget(@NotNull String key)Retrieve the object stored under thekey.default Optional<T>optional(@NotNull String key)Retrieve an optional for the object stored under thekey.voidput(@NotNull String key, T value)Put the object in the cache with the givenkey.voidput(@NotNull String key, T value, @NotNull Duration duration)Put the object in the cache with the givenkeyfor the givenduration.voidput(@NotNull String key, T value, @NotNull LocalDateTime expiresAt)Put the object in the cache with the givenkeyfor untilexpiresAthas come.voidput(@NotNull String key, T value, @NotNull ZonedDateTime expiresAt)Put the object in the cache with the givenkeyfor untilexpiresAthas come.default voidputEternally(@NotNull String key, T value)Put the object in the cache with the givenkeyfor ever.voidremove(@NotNull String key)Remove the value associate with thekey.
-
-
-
Method Detail
-
put
void put(@NotNull @NotNull String key, @NotNull T value)Put the object in the cache with the givenkey.The object is stored for the default configured time, depending on the cache implementation. See general remarks about cache evictions.
- Parameters:
key- The (not null) key to store the object under.value- The (not null) object to store.
-
put
void put(@NotNull @NotNull String key, @NotNull T value, @NotNull @NotNull Duration duration)Put the object in the cache with the givenkeyfor the givenduration.The object is stored for the requested duration. See general remarks about cache evictions.
- Parameters:
key- The (not null) key to store the object under.value- The (not null) object to store.duration- The (not null) duration to store the object for.
-
put
void put(@NotNull @NotNull String key, @NotNull T value, @NotNull @NotNull LocalDateTime expiresAt)Put the object in the cache with the givenkeyfor untilexpiresAthas come.The object is stored and should be removed when
expiresAthad come.- Parameters:
key- The (not null) key to store the object under.value- The (not null) object to store.expiresAt- The (not null) expiry time.
-
put
void put(@NotNull @NotNull String key, @NotNull T value, @NotNull @NotNull ZonedDateTime expiresAt)Put the object in the cache with the givenkeyfor untilexpiresAthas come.The object is stored and should be removed when
expiresAthad come.- Parameters:
key- The (not null) key to store the object under.value- The (not null) object to store.expiresAt- The (not null) expiry time.
-
putEternally
default void putEternally(@NotNull @NotNull String key, @NotNull T value)Put the object in the cache with the givenkeyfor ever.The object is stored and should never be removed. This should overrule configured default expiry time for objects put in the cache. However, the object may still be evicted from the cache, for instance for memory reasons.
This method calls Duration.ofMillis(Long.max()) and passes it to the put(key, value, Duration duration). So this method does not persist eternally, but rather persists for a long time.
- Parameters:
key- The (not null) key to store the object under.value- The (not null) object to store.
-
get
T get(@NotNull @NotNull String key)
Retrieve the object stored under thekey.- Parameters:
key- The (never null) key to retrieve the value with.- Returns:
- The value, or
nullif the object is not found.
-
optional
default Optional<T> optional(@NotNull @NotNull String key)
Retrieve an optional for the object stored under thekey.- Parameters:
key- The (never null) key to retrieve the value with.- Returns:
- The
Optionalfor the value.
-
remove
void remove(@NotNull @NotNull String key)Remove the value associate with thekey.- Parameters:
key- The key to remove.
-
-