玩轉 SpringBoot 2.x 之 RedisTemplate 操作

前言

Spring 專門提供了進行 Redis 操作的抽象 RedisTemplate,底層依然使用 Jedis 或 lettuce。SpringBoot 2 默認使用 lettuce。

Redis 安裝

請參考:帶你學 Redis: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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章