springboot整合redis

·  阅读 424

1.添加依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
复制代码

2.配置文件

spring:
redis:
#地址
host: localhost
#端口
port: 6379
#索引库
database: 1
#密码
password:
#超时时间
timeout: 5000ms
#其他配置
复制代码

3.测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisApplicationTests {

// @Autowired
// private RedisTemplate redisTemplate;

@Resource
private RedisTemplate<String, Object> redisTemplate;

@Autowired
private StringRedisTemplate stringRedisTemplate;

@Test
public void contextLoads() {
redisTemplate.opsForValue().set("test", 1);
int test = (int) redisTemplate.opsForValue().get("test");
System.out.println(test);
}

}
复制代码

控制台输出:1

RedisTemplate和StringRedisTemplate是常用的模板

  1. StringRedisTemplate是RedisTemplate<String, String>的子类,
    key和value序列化都是StringRedisSerializer,只能操作string类型
  2. RedisTemplate注入的时候如果使用@Autowired则不能使用泛型
    如果使用泛型可以使用@Resource注解进行注入(参考@Autowired和@Resource区别)
  3. 如果想使用@Autowired注入并使用泛型,可以重新注册bean,第四步设置序列化也属于重新注册bean

4.设置序列化

@Configuration
public class BeanLoad {
/**
* 设置redisTemplate key序列化
* @param factory
* @return
*/

@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory){
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(factory);

//将key的序列化设置成StringRedisSerializer
StringRedisSerializer keySerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(keySerializer);
redisTemplate.setHashKeySerializer(keySerializer);

redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
复制代码

项目路径


作者博客

作者公众号 在这里插入图片描述

分类:
后端
标签: