Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreSpring Data Redis, part of the larger Spring Data family, provides easy configuration and access to Redis from Spring applications. It offers both low-level and high-level abstractions for interacting with the store, freeing the user from infrastructural concerns.
Connection package as low-level abstraction across multiple Redis drivers(Lettuce and Jedis).
Exception translation to Spring’s portable Data Access exception hierarchy for Redis driver exceptions.
RedisTemplate that provides a high-level abstraction for performing various Redis operations, exception translation and serialization support.
Pubsub support (such as a MessageListenerContainer for message-driven POJOs).
Redis Sentinel and Redis Cluster support.
Reactive API using the Lettuce driver.
JDK, String, JSON and Spring Object/XML mapping serializers.
JDK Collection implementations on top of Redis.
Atomic counter support classes.
Sorting and Pipelining functionality.
Dedicated support for SORT, SORT/GET pattern and returned bulk values.
Redis implementation for Spring 3.1 cache abstraction.
Automatic implementation of Repository
interfaces including support for custom query methods using @EnableRedisRepositories
.
CDI support for repositories.
<bean id="jedisConnFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:use-pool="true"/>
<!-- redis template definition -->
<bean id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnFactory"/>
public class Example {
// inject the actual template
@Autowired
private RedisTemplate<String, String> template;
// inject the template as ListOperations
// can also inject as Value, Set, ZSet, and HashOperations
@Resource(name="redisTemplate")
private ListOperations<String, String> listOps;
public void addLink(String userId, URL url) {
listOps.leftPush(userId, url.toExternalForm());
// or use template directly
redisTemplate.boundListOps(userId).leftPush(url.toExternalForm());
}
}