在SpringBoot2.X之前還是直接使用的官方推薦的Jedis連接的Redis
#在2 .X之後換為了lettuce
Jedis:採用直接連接,多線程操作不安全,如果想要避免不安全,使用Jedis pool連接池;BIO
lettuce:底層採用Netty,實例可以在多個線程之間共享,不存在線程不安全的情況,可以減少執行緒數量;NIO
SpringBoot所有的設定類,都有一個自動配置類別
自動配置類別都會綁定一個properties檔案
在原始碼中找到Spring.factories
#在裡面搜尋redis,找到AutoConfiguration
##他是存在兩個子類別的,分別是JedisConnectionFactory和LettuceConnectionFactory
因為JedisConnectionFactory類別所依賴的很多類別都不存在,所以不能直接使用它
#全都是爆紅線的,而lettuceConnectionFactory中的依賴就是全部存在的
spring: redis: host: localhost port: 6379
在项目创建的时候选择,如果没有选择就添加
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
開啟SpringBoot預設建立的測試類別
常用的操作可以直接点就可以了
关于事物的
redisTemplate.unwatch(); redisTemplate.watch("key"); redisTemplate.multi(); redisTemplate.discard(); redisTemplate.exec();
关于数据库的操作需要获取链接后使用连接对象操作
RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();connection.flushAll();connection.flushDb();connection.close();
package co.flower.redis02springboot;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.data.redis.connection.RedisConnection;import org.springframework.data.redis.core.RedisTemplate; @SpringBootTestclass Redis02SpringbootApplicationTests {/** * 我居然直接就指定了泛型 RedisTemplate<String,Object>结果就直接报错了,删除泛型后成功 */@Autowiredprivate RedisTemplate redisTemplate; @Testvoid contextLoads() {// 英文测试redisTemplate.opsForValue().set("name","xiaojiejie"); System.out.println(redisTemplate.opsForValue().get("name"));// 中文测试redisTemplate.opsForValue().set("name","小姐姐"); System.out.println(redisTemplate.opsForValue().get("name")); } } 执行结果,SpringBoot的启动加载和结束销毁没有粘贴/***SpringBootStart****/xiaojiejie 小姐姐/***SpringBootStop*****/
以上是SpringBoot整合Redis操作API的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!