- 想要在spring boot中使用redis狡逢,只要在pom文件中增加如下的配置就可以了跪妥。
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>```
2. 引入spring-boot-redis jar包之后趣惠,選擇相應(yīng)的客戶端配置連接就可以使用redis了缩麸,推薦使用Jedis桂敛。
```@Bean
JedisConnectionFactory connectionFactory() {
return new JedisConnectionFactory();
}```
3. 配置完連接后跷睦,就可以使用redis進(jìn)行簡單的存取了筷弦。如果存取的key,value都是String的,可以使用
RedisTemplate<String, String>對象抑诸,該對象由spring boot自動(dòng)掃描生成烂琴,在需要的地方可以直接注入。如果只是進(jìn)行簡單的存儲(chǔ)蜕乡,還可以生成
ValueOperations對象來方便操作奸绷。
```@Bean
ValueOperations<String, String> strOperations(RedisTemplate<String, String> redisTemplate) {
return redisTemplate.opsForValue();
}```
4. 如果想要存取其他類型的對象,例如存取key為string层玲,value為Integer類型的對象号醉,可以new這個(gè)對象,然后配置連接即可使用辛块。
```@Bean
RedisTemplate<String, Integer> intRedisTemplate(JedisConnectionFactory connectionFactory) {
RedisTemplate<String, Integer> redisTemplate = new RedisTemplate<String, Integer>();
redisTemplate.setConnectionFactory(connectionFactory);
return redisTemplate;
}```
5. RedisTemplate對象默認(rèn)使用jdkSerializer實(shí)現(xiàn)序列化畔派,如果想要更換序列化的實(shí)現(xiàn)方式,例如使用json實(shí)現(xiàn)value的序列化润绵,可以進(jìn)行如下配置
```@Bean
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer(ObjectMapper objectMapper) {
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(
Object.class);
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
return jackson2JsonRedisSerializer;
}
@Bean
RedisTemplate<String, Object> objRedisTemplate(JedisConnectionFactory connectionFactory,
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
redisTemplate.setConnectionFactory(connectionFactory);
redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringRedisSerializer);
redisTemplate.setHashKeySerializer(stringRedisSerializer);
return redisTemplate;
}
最后附上上述操作的完整代碼
@Configuration
public class RedisConfig {
@Bean
JedisConnectionFactory connectionFactory() {
return new JedisConnectionFactory();
}
@Bean
ValueOperations<String, String> strOperations(RedisTemplate<String, String> redisTemplate) {
return redisTemplate.opsForValue();
}
@Bean
RedisTemplate<String, Integer> intRedisTemplate(JedisConnectionFactory connectionFactory) {
RedisTemplate<String, Integer> redisTemplate = new RedisTemplate<String, Integer>();
redisTemplate.setConnectionFactory(connectionFactory);
return redisTemplate;
}
@Bean
ValueOperations<String, Integer> intOperations(RedisTemplate<String, Integer> redisTemplate) {
return redisTemplate.opsForValue();
}
@Bean
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer(ObjectMapper objectMapper) {
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(
Object.class);
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
return jackson2JsonRedisSerializer;
}
@Bean
RedisTemplate<String, Object> objRedisTemplate(JedisConnectionFactory connectionFactory,
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
redisTemplate.setConnectionFactory(connectionFactory);
redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringRedisSerializer);
redisTemplate.setHashKeySerializer(stringRedisSerializer);
return redisTemplate;
}
@Bean
ValueOperations<String, Object> objOperations(RedisTemplate<String, Object> redisTemplate) {
return redisTemplate.opsForValue();
}
}```
參考文檔:
1. http://docs.spring.io/spring-data/redis/docs/current/reference/html/
2. http://docs.spring.io/spring-framework/docs/4.0.4.RELEASE/javadoc-api/org/springframework/context/annotation/Configuration.html
3. http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Bean.html