前言
Spring 專門提供了進行 Redis 操作的抽象 RedisTemplate,底層依然使用 Jedis 或 lettuce。SpringBoot 2 默認使用 lettuce。
Redis 安裝
代碼案例
引入 spring-boot-starter-data-redis 和 commons-pool2 依賴,具體代碼如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
然後在 application.properties中添加如下配置信息:
spring.redis.port=6379
spring.redis.host=192.168.31.150
spring.redis.lettuce.pool.maxActive=5
spring.redis.lettuce.pool.maxIdle=5
你沒有看錯到這裏就可以快速的使用 RedisTemplate 操作 Redis服務了。
- spring.redis.port:Redis服務器端口。
- spring.redis.host:Redis服務器主機 ip
- spring.redis.lettuce.pool.maxActive:最大連接數, 默認8個
- spring.redis.lettuce.pool.maxIdle:最大空閒連接數, 默認8個
演示
這裏通過 set key value 、get key、del key 三個命令進行演示操作。三個命令具體含義如下:
set
key value :向指定的key中添加 string 的value 返回ok,如果有則覆蓋。get
key:獲取指定key的value值,返回值是string 的 value。del
key:刪除指定的 key 名稱的的key-value 信息,返回刪除的個數。
@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTemplateTest {
Logger log = LoggerFactory.getLogger(RedisTemplateTest.class);
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Test
public void set(){
redisTemplate.opsForValue().set("a","1",30, TimeUnit.MINUTES);
log.info("設置 key 爲 a 的值是:{}",1);
}
@Test
public void get(){
String value = redisTemplate.opsForValue().get("a");
log.info("key 爲 a 的值是:{}",value);
}
@Test
public void del(){
redisTemplate.delete("a");
log.info("刪除key 爲 a 的值是:{}",1);
}
}
set 測試日誌信息:
2020-02-25 16:17:10.470 INFO 22132 --- [ main] cn.lijunkui.RedisTemplateTest : 設置 key 爲 a 的值是:1
2020-02-25 16:17:11.629 INFO 22132 --- [ Thread-1] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
get 測試日誌信息:
2020-02-25 16:18:46.559 INFO 17364 --- [ main] cn.lijunkui.RedisTemplateTest : key 爲 a 的值是:1
2020-02-25 16:18:47.713 INFO 17364 --- [ Thread-1] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
del 測試的日誌信息:
2020-02-25 16:19:49.701 INFO 3780 --- [ main] cn.lijunkui.RedisTemplateTest : 刪除key 爲 a 的值是:1
2020-02-25 16:19:50.858 INFO 3780 --- [ Thread-1] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
小結
相對於SpringBoot 集成Jedis 是不是更簡單了有木有,如果對 RedisTemplate 還不熟悉的小夥伴,抓緊操作起來吧!
代碼示例
我本地環境如下:
- SpringBoot Version: 2.1.0.RELEASE
- Apache Maven Version: 3.6.0
- Java Version: 1.8.0_144
- IDEA:IntellJ IDEA
整合過程如出現問題可以在我的GitHub 倉庫 springbootexamples 中模塊名爲 spring-boot-2.x-redis-redistemplate 項目中進行對比查看
GitHub:https://github.com/zhuoqianmingyue/springbootexamples