SpringBoot運算元據:spring-data jpa jdbc mongodb redis !
SpringData也是和SpringBoot齊名的專案!
說明:在SpringBoot2.X之後,原來使用的jedis被替換成了lettuce
jedis:採用的直連,多個執行緒操作的話,是不安全的,如果想要避免不安全的,使用jedis pool連線池!更像BIO模式
lettuce:採用netty,例項可以在多個執行緒中進行共享,不存線上程不安全的情況!可以減少執行緒資料了,更像NIO模式
整合測試
原始碼分析:
@Bean
@ConditionalOnMissingBean(name = "redisTemplate")//我們可以自定義一個redisTemplate來替換這個預設的!
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)throws UnknownHostException {
//預設的RedisTemplate 沒有過多的設定,redis物件都是需要序列化的!
//兩個泛型都是Object型別,Object的型別,我們使用需要強制轉換<String,Object>
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
@Bean
@ConditionalOnMissingBean//由於String 是redis中最常用的型別,所以單獨出來一個bean!
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory)throws UnknownHostException {
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
整合測試
1、匯入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2、配置連線
# 配置redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
3、測試
@SpringBootTest
class SpringbootRedisApplicationTests {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Test
void contextLoads() {
//redisTemplate 操作不同的資料型別
//opsForValue //操作字串 類似String
//opsForList //操作List 類似List
//opsForSet //opsForHash //opsForZSet //opsForGeo
//除了基本的操作,我們常用的方法都可以直接通過redisTemplate操作,比如事務,和基本的CRUD
redisTemplate.opsForValue().set("myKey","myValue");
System.out.println(redisTemplate.opsForValue().get("myKey"));
}
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結