Class RedisCache
java.lang.Object
io.micronaut.configuration.lettuce.cache.AbstractRedisCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>>
io.micronaut.configuration.lettuce.cache.RedisCache
- All Implemented Interfaces:
io.micronaut.cache.Cache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>>, io.micronaut.cache.SyncCache<io.lettuce.core.api.StatefulConnection<byte[], byte[]>>, AutoCloseable
@EachBean(RedisCacheConfiguration.class)
@Requires(property="redis.enabled",notEquals="false") @Requires(classes=io.micronaut.cache.SyncCache.class,property="redis.pool.enabled",defaultValue="false",notEquals="true")
public class RedisCache
extends AbstractRedisCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>>
An implementation of
SyncCache for Lettuce / Redis.- Since:
- 1.0
- Author:
- Graeme Rocher
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classRedis Async cache implementation. -
Field Summary
Fields inherited from class AbstractRedisCache
expireAfterAccess, expireAfterWritePolicy, INVALID_REDIS_CONNECTION_MESSAGE, invalidateScanCount, keyPrefix, keySerializer, redisCacheConfiguration, valueSerializer -
Constructor Summary
ConstructorsConstructorDescriptionRedisCache(DefaultRedisCacheConfiguration defaultRedisCacheConfiguration, RedisCacheConfiguration redisCacheConfiguration, io.micronaut.core.convert.ConversionService conversionService, io.micronaut.context.BeanLocator beanLocator) Creates a new redis cache for the given arguments. -
Method Summary
Modifier and TypeMethodDescriptionio.micronaut.cache.AsyncCache<io.lettuce.core.api.StatefulConnection<byte[], byte[]>> async()voidclose()<T> @NonNull Optional<T> <T> TgetAll(@NonNull Collection<K> keys) Resolve the values for the given keys.<K,T> @NonNull Map <K, T> getAll(@NonNull Collection<K> keys, @NonNull io.micronaut.core.type.Argument<T> requiredType) Resolve the values for the given keys.protected StringgetName()io.lettuce.core.api.StatefulConnection<byte[], byte[]> protected <T> Optional<T> getValue(io.micronaut.core.type.Argument<T> requiredType, byte[] serializedKey) Get the value based on the parameters.voidinvalidate(Object key) voidvoidinvalidateAllKeys(@NonNull Collection<?> keys) Invalidate the values for the given keys.voidvoidCache the specified values in bulk.<T> @NonNull Optional<T> putIfAbsent(Object key, T value) protected <T> voidputValue(byte[] serializedKey, T value) Place the value in the cache.protected byte[]serializeKey(Object key) Serialize the key.Methods inherited from class AbstractRedisCache
allKeys, allKeys, allKeys, allKeys, executeInsert, executeInsertAsync, executeRead, executeReadAsync, get, getRedisKeyAsyncCommands, getRedisKeyCommands, getRedisStringAsyncCommands, getRedisStringCommands, getValues, invalidateValues, putValue, putValuesMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.cache.Cache
getCacheInfoMethods inherited from interface io.micronaut.cache.SyncCache
get, get, getExecutorService, putIfAbsent
-
Constructor Details
-
RedisCache
public RedisCache(DefaultRedisCacheConfiguration defaultRedisCacheConfiguration, RedisCacheConfiguration redisCacheConfiguration, io.micronaut.core.convert.ConversionService conversionService, io.micronaut.context.BeanLocator beanLocator) Creates a new redis cache for the given arguments.- Parameters:
defaultRedisCacheConfiguration- The default configurationredisCacheConfiguration- The configurationconversionService- The conversion servicebeanLocator- The bean locator used to discover the redis connection from the configuration
-
-
Method Details
-
getName
-
getNativeCache
public io.lettuce.core.api.StatefulConnection<byte[],byte[]> getNativeCache() -
get
-
getAll
Resolve the values for the given keys.- Type Parameters:
K- The key type- Parameters:
keys- The cache keys- Returns:
- An ordered map containing all requested keys
-
getAll
public <K,T> @NonNull Map<K,T> getAll(@NonNull Collection<K> keys, @NonNull io.micronaut.core.type.Argument<T> requiredType) Resolve the values for the given keys.- Type Parameters:
K- The key typeT- The value type- Parameters:
keys- The cache keysrequiredType- The required type- Returns:
- An ordered map containing all requested keys
-
putAll
Cache the specified values in bulk.- Parameters:
values- The values to cache
-
invalidate
-
invalidateAllKeys
Invalidate the values for the given keys.- Parameters:
keys- The keys to invalidate
-
invalidateAll
public void invalidateAll() -
async
public io.micronaut.cache.AsyncCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>> async() -
getValue
protected <T> Optional<T> getValue(io.micronaut.core.type.Argument<T> requiredType, byte[] serializedKey) Get the value based on the parameters.- Specified by:
getValuein classAbstractRedisCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>> - Type Parameters:
T- type of the argument- Parameters:
requiredType- requiredTypeserializedKey- serializedKey- Returns:
- value
-
putValue
protected <T> void putValue(byte[] serializedKey, T value) Place the value in the cache.- Specified by:
putValuein classAbstractRedisCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>> - Type Parameters:
T- type of the value- Parameters:
serializedKey- serializedKeyvalue- value
-
get
- Specified by:
getin interfaceio.micronaut.cache.SyncCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>> - Overrides:
getin classAbstractRedisCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>>
-
put
- Specified by:
putin interfaceio.micronaut.cache.SyncCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>> - Overrides:
putin classAbstractRedisCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>>
-
putIfAbsent
- Specified by:
putIfAbsentin interfaceio.micronaut.cache.SyncCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>> - Overrides:
putIfAbsentin classAbstractRedisCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>>
-
getKeysPattern
- Overrides:
getKeysPatternin classAbstractRedisCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>> - Returns:
- The default keys pattern.
-
serializeKey
Description copied from class:AbstractRedisCacheSerialize the key.- Overrides:
serializeKeyin classAbstractRedisCache<io.lettuce.core.api.StatefulConnection<byte[],byte[]>> - Parameters:
key- The key- Returns:
- bytes of the object
-
close
@PreDestroy public void close()
-