添加依赖
1 2 3 4
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
|
配置
1 2 3 4 5 6 7 8 9 10 11 12 13
| spring: redis: host: localhost port: 6379 database: 0 password: timeout: 5000ms
|
测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| @SpringBootTest public class MyTests {
@Resource private RedisTemplate<String, Object> redisTemplate;
@Test public void set() { redisTemplate.opsForValue().set("test", "test"); String test = (String) redisTemplate.opsForValue().get("test"); System.out.println(test); } }
|
RedisTemplate和StringRedisTemplate是常用的模板
- StringRedisTemplate是RedisTemplate<String, String>的子类,
key和value序列化都是StringRedisSerializer,只能操作string类型
- RedisTemplate注入的时候如果使用@Autowired则不能使用泛型,
如果使用泛型可以使用@Resource注解进行注入(参考@Autowired和@Resource区别)
- 如果想使用@Autowired注入并使用泛型,可以重新注册bean
设置序列化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){ RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(RedisSerializer.string()); redisTemplate.setHashKeySerializer(RedisSerializer.string()); redisTemplate.setValueSerializer(RedisSerializer.json()); redisTemplate.setHashValueSerializer(RedisSerializer.json()); redisTemplate.afterPropertiesSet(); return redisTemplate; }
|