最近项目要用Spring集成Redis,发现好多人都在用Spring-data-redis,于是也在官网上学习了一下。国内的一些博客配置也很详细,但是各有千秋,还是参照官网的感觉简单一点,下面是官网地址:http://projects.spring.io/spring-data-redis/。一开始的版本是不支持Redis Cluster的,不过在1.7.x版本以上就开始可以支持集群了。
Spring Data Redis
Spring Data Redis是Spring Data大家族的一部分,它提供了通过简单的配置就可以使Spring应用程序操作Redis。也提供了和仓库交互的低级和高级的抽象,以便用户不考虑基础设备的影响。
功能
1、连接包作为多个Redis驱动程序/连接器的低级抽象(Jedis和Lettuce,不支持JRedis和SRP)
2、对于驱动异常,会转化为Spring的数据访问异常层次结构
3、RedisTemplate给多种Redis操作、异常转换和序列化方式提供了高级抽象
4、支持Pubsub(比如作为消息驱动的POJO对象的消息监听容器)
5、支持Redis Sentinel和Redis Cluster
6、提供了JDK、String、JSON和Spring Object/XML的序列化方式
7、Redis实现了JDK集合
8、原子计数器支持类
9、排序和管道功能
10、支持SORT,SORT/GET模式返回的批量值
11、Redis实现了Spring3.1缓存抽象
12、实现Repository接口,包括使用@EnableRedisRepositories支持自定义查找器方法
13、CDI支持存储库
快速开始
推荐开始在项目中使用spring-data-redis的方式是用依赖管理系统—下面的代码片段可以复制粘贴进您的构建中。如果需要帮助,请看我们的利用Maven和Gradle构建的开始指南。
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.8.3.RELEASE</version>
</dependency>
</dependencies>
配置RedisTemplate
<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"/>
注入并使用RedisTemplate或它的任何操作实例
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());
}
}