Class RedisKeyValueAdapter
java.lang.Object
org.springframework.data.keyvalue.core.AbstractKeyValueAdapter
org.springframework.data.redis.core.RedisKeyValueAdapter
- All Implemented Interfaces:
EventListener,org.springframework.beans.factory.Aware,org.springframework.beans.factory.DisposableBean,org.springframework.beans.factory.InitializingBean,org.springframework.context.ApplicationContextAware,org.springframework.context.ApplicationListener<RedisKeyspaceEvent>,org.springframework.data.keyvalue.core.KeyValueAdapter
public class RedisKeyValueAdapter
extends org.springframework.data.keyvalue.core.AbstractKeyValueAdapter
implements org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener<RedisKeyspaceEvent>
Redis specific
Example
The
KeyValueAdapter implementation. Uses binary codec to read/write data from/to Redis. Objects
are stored in a Redis Hash using the value of RedisHash, the KeyspaceConfiguration or just
Class.getName() as a prefix. Example
@RedisHash("persons")
class Person {
@Id String id;
String name;
}
prefix ID
| |
V V
hgetall persons:5d67b7e1-8640-4475-beeb-c666fab4c0e5
1) id
2) 5d67b7e1-8640-4475-beeb-c666fab4c0e5
3) name
4) Rand al'Thor
The
KeyValueAdapter is not intended to store simple types such as String values.
Please use RedisTemplate for this purpose.- Since:
- 1.7
- Author:
- Christoph Strobl, Mark Paluch, Andrey Muchnik, John Blum
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic enumConfiguration flag controlling storage of phantom keys (shadow copies) of expiring entities to read them later when publishingRedisKeyspaceEvent. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDefault constructor.RedisKeyValueAdapter(RedisOperations<?, ?> redisOps) Creates newRedisKeyValueAdapterwith defaultRedisMappingContextand defaultRedisCustomConversions.RedisKeyValueAdapter(RedisOperations<?, ?> redisOps, RedisConverter redisConverter) Creates newRedisKeyValueAdapterwith specificRedisConverter.RedisKeyValueAdapter(RedisOperations<?, ?> redisOps, RedisMappingContext mappingContext) Creates newRedisKeyValueAdapterwith defaultRedisCustomConversions.RedisKeyValueAdapter(RedisOperations<?, ?> redisOps, RedisMappingContext mappingContext, org.springframework.data.convert.CustomConversions customConversions) Creates newRedisKeyValueAdapter. -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidclear()booleanlongbyte[]<T> TvoiddeleteAllOf(String keyspace) voiddestroy()<T> Texecute(RedisCallback<T> callback) ExecuteRedisCallbackvia underlyingRedisOperations.<T> TList<?><T> Iterable<T><T> List<T>Get all elements for given keyspace.Get theRedisConverterin use.voidvoidsetApplicationContext(org.springframework.context.ApplicationContext applicationContext) voidsetEnableKeyspaceEvents(RedisKeyValueAdapter.EnableKeyspaceEvents enableKeyspaceEvents) Configure usage ofKeyExpirationEventMessageListener.voidsetKeyspaceNotificationsConfigParameter(String keyspaceNotificationsConfigParameter) Configure the notify-keyspace-events property if not already set.voidsetMessageListenerContainer(RedisMessageListenerContainer messageListenerContainer) Configure aRedisMessageListenerContainerto listen for Keyspace expiry events.voidsetShadowCopy(RedisKeyValueAdapter.ShadowCopy shadowCopy) Configure storage of phantom keys (shadow copies) of expiring entities.byte[]Convert given source to binary representation using the underlyingConversionService.voidupdate(PartialUpdate<?> update) Methods inherited from class org.springframework.data.keyvalue.core.AbstractKeyValueAdapter
count, find, find, getQueryEngineMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.data.keyvalue.core.KeyValueAdapter
entries, exists
-
Constructor Details
-
RedisKeyValueAdapter
Creates newRedisKeyValueAdapterwith defaultRedisMappingContextand defaultRedisCustomConversions.- Parameters:
redisOps- must not be null.
-
RedisKeyValueAdapter
Creates newRedisKeyValueAdapterwith defaultRedisCustomConversions.- Parameters:
redisOps- must not be null.mappingContext- must not be null.
-
RedisKeyValueAdapter
public RedisKeyValueAdapter(RedisOperations<?, ?> redisOps, RedisMappingContext mappingContext, @Nullable org.springframework.data.convert.CustomConversions customConversions) Creates newRedisKeyValueAdapter.- Parameters:
redisOps- must not be null.mappingContext- must not be null.customConversions- can be null.- Since:
- 2.0
-
RedisKeyValueAdapter
Creates newRedisKeyValueAdapterwith specificRedisConverter.- Parameters:
redisOps- must not be null.redisConverter- must not be null.
-
RedisKeyValueAdapter
protected RedisKeyValueAdapter()Default constructor.
-
-
Method Details
-
put
- Specified by:
putin interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter
-
contains
- Specified by:
containsin interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter
-
get
- Specified by:
getin interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter
-
get
- Specified by:
getin interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter- Overrides:
getin classorg.springframework.data.keyvalue.core.AbstractKeyValueAdapter
-
delete
- Specified by:
deletein interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter
-
delete
- Specified by:
deletein interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter- Overrides:
deletein classorg.springframework.data.keyvalue.core.AbstractKeyValueAdapter
-
getAllOf
- Specified by:
getAllOfin interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter
-
getAllOf
- Specified by:
getAllOfin interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter
-
getAllOf
Get all elements for given keyspace.- Parameters:
keyspace- the keyspace to fetch entities from.type- the desired target type.offset- index value to start reading.rows- maximum number or entities to return.- Returns:
- never null.
- Since:
- 2.5
-
deleteAllOf
- Specified by:
deleteAllOfin interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter
-
entries
public org.springframework.data.util.CloseableIterator<Map.Entry<Object,Object>> entries(String keyspace) - Specified by:
entriesin interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter
-
count
- Specified by:
countin interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter
-
update
-
execute
ExecuteRedisCallbackvia underlyingRedisOperations.- Parameters:
callback- must not be null.- See Also:
-
getConverter
Get theRedisConverterin use.- Returns:
- never null.
-
clear
public void clear()- Specified by:
clearin interfaceorg.springframework.data.keyvalue.core.KeyValueAdapter
-
createKey
-
toBytes
Convert given source to binary representation using the underlyingConversionService. -
setEnableKeyspaceEvents
Configure usage ofKeyExpirationEventMessageListener.- Since:
- 1.8
-
setMessageListenerContainer
Configure aRedisMessageListenerContainerto listen for Keyspace expiry events. The container can only be set when this bean hasn't been yetinitialized.- Parameters:
messageListenerContainer- the container to use.- Throws:
IllegalStateException- when trying to set aRedisMessageListenerContainerafterafterPropertiesSet()has been called to initialize a managed container instance.- Since:
- 2.7.2
-
setKeyspaceNotificationsConfigParameter
Configure the notify-keyspace-events property if not already set. Use an emptyStringor null to retain existing server settings.- Parameters:
keyspaceNotificationsConfigParameter- can be null.- Since:
- 1.8
-
setShadowCopy
Configure storage of phantom keys (shadow copies) of expiring entities.- Parameters:
shadowCopy- must not be null.- Since:
- 2.3
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Since:
- 1.8
- See Also:
-
InitializingBean.afterPropertiesSet()
-
destroy
- Specified by:
destroyin interfaceorg.springframework.beans.factory.DisposableBean- Throws:
Exception
-
onApplicationEvent
- Specified by:
onApplicationEventin interfaceorg.springframework.context.ApplicationListener<RedisKeyspaceEvent>
-
setApplicationContext
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException - Specified by:
setApplicationContextin interfaceorg.springframework.context.ApplicationContextAware- Throws:
org.springframework.beans.BeansException
-