- 添加依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 配置文件
spring:
redis:
#地址
host: localhost
#端口
port: 6379
#索引庫
database: 1
#密碼
password:
#超時(shí)時(shí)間
timeout: 5000ms
#其他配置
- 測(cè)試
@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);
}
}
控制臺(tái)輸出:1
RedisTemplate和StringRedisTemplate是常用的模板
- StringRedisTemplate是RedisTemplate<String, String>的子類肯骇,
key和value序列化都是StringRedisSerializer祖很,只能操作string類型- RedisTemplate注入的時(shí)候如果使用@Autowired則不能使用泛型
如果使用泛型可以使用@Resource注解進(jìn)行注入(參考@Autowired和@Resource區(qū)別)- 如果想使用@Autowired注入并使用泛型,可以重新注冊(cè)bean胚鸯,第四步設(shè)置序列化也屬于重新注冊(cè)bean
- 設(shè)置序列化
@Configuration
public class BeanLoad {
/**
* 設(shè)置redisTemplate key序列化
* @param factory
* @return
*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory){
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(factory);
//將key的序列化設(shè)置成StringRedisSerializer
StringRedisSerializer keySerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(keySerializer);
redisTemplate.setHashKeySerializer(keySerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
作者公眾號(hào)