亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

SpringBoot 開啟Redis緩存及使用方法

瀏覽:3日期:2023-12-01 16:02:18
目錄Redis緩存主要步驟具體實踐整體目錄結構yml文件里配置Redis集群設置序列化的Bean編寫業務Controller關于緩存的其他注解檢驗結果

之前不是說過Redis可以當作緩存用嘛現在我們就配置一下SpringBoot使用Redis的緩存

Redis緩存

為什么用Redis作緩存用redis做緩存,是因為redis有著很優秀的讀寫能力,在集群下可以保證數據的高可用

主要步驟

1、pom.xml文件添加依賴

2、yml文件配置redis集群

3、編寫RedisConfig配置序列化及緩存配置,添加緩存注解

4、編寫業務Controller,添加緩存注解

5、編寫啟動類

具體實踐整體目錄結構

pom.xml添加依賴

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>SpringBoot_Redis</artifactId> <version>1.0-SNAPSHOT</version> <properties><java.version>1.8</java.version> </properties> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.8.RELEASE</version> </parent> <dependencies><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><!--整合redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!--spring boot test--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId></dependency> </dependencies></project>

SpringBoot 開啟Redis緩存及使用方法

yml文件里配置Redis集群

結構是ip+port

spring: redis: cluster: nodes:- 169.254.0.100:8001- 169.254.0.100:8002- 169.254.0.100:8003- 169.254.0.100:8004- 169.254.0.100:8005- 169.254.0.100:8006

SpringBoot 開啟Redis緩存及使用方法

編寫RedisConfig配置序列化及緩存配置,添加緩存注解

SpringBoot 開啟Redis緩存及使用方法

設置序列化的Bean

SpringBoot 開啟Redis緩存及使用方法

設置緩存的Bean

SpringBoot 開啟Redis緩存及使用方法

這里有必要解釋一下

cacheNames.add() 這里我理解的是和controller進行綁定,畢竟很多controller的時候,這里可以確定到底那個controller開啟緩存,以及每個controller對緩存的要求可能也不一樣 configMap這里就是將我們對緩存的一些配置和命名空間進行關聯 設置緩存時間和禁止緩存空數據應該還好理解編寫業務Controller

@RestController@RequestMapping('user')public class RedisCacheController { @Cacheable(value = 'user',key = '#root.methodName+#root.args[0]') @GetMapping('findWord/{id}') public String findWord(@PathVariable String id) {System.out.println('Cacheing');HashMap<String, String> words = new HashMap<>();words.put('1', 'java');words.put('2', 'redis');words.put('3', 'cache');return words.get(id); }}

@Cacheable一定要加在方法之上value就是之前在RedisConfig中定義的命名空間,也是緩存保存的空間key就是緩存保存的key,這里以方法名為key,但是為避免方法名重復導致的key重復,所以加入id,來避免重復

關于緩存的其他注解 @CachePut

在支持Spring Cache的環境中,對于使用@Cacheale標注的方法,Spring在每次執行前都會檢查Cache中是否存在相同的key的緩存元素,如果存在就不再執行該方法,而是從緩存中獲取結果直接進行返回,若不存在才會執行方法并將返回結果存入指定的緩存中

@Cacheput也可以生命一個方法支持緩存功能,與@Cacheable不同的是使用@CachePut標注的方法在執行并不會去檢查緩存中是否存在之前執行過的結果,而是每次都會執行該方法,并將執行結果以鍵值對的形式存入緩存中。

@CacheEvict

CacheEvict是用來標注在需要清除緩存元素的方法或類上的。當標記在一個類上時表示其中所有的方法的執行都會觸發緩存的清除操作@CacheEvict可以指定的屬性有value、key、condition、allEntries和beforeInvocation。其中value、key和condition的語義與@Cacheable對應的屬性類似。即value表示清除操作是發生在哪些緩存(命名空間)上的key表示要清除的是哪個key,如未指定則會誰用默認策略生成的key,condition表示清除操作發生的條件allEntries屬性allEntries是boolean類型的,表示是否要清除緩存中的所有元素,默認為false,當指定為true時,會忽略指定的keybeforeInvocation屬性清除操作默認時在對應方法成功執行后觸發的,即方法如果因為拋出異常而未能成功返回也不會觸發清除操作使用beforeInvocation可以改變觸發清除操作的時間,當我們指定屬性值為true時,Spring會在調用該方法之前清除緩存中的指定元素 編寫啟動類

就是傳統的啟動類

SpringBoot 開啟Redis緩存及使用方法

檢驗結果

使用postman發送請求進行檢測第一次的時候可以看到控制臺打印

SpringBoot 開啟Redis緩存及使用方法

這說明方法執行了但是第二次發送相同請求的時候,可以看到拿到了數據,但是方法沒有執行,說明緩存有用了

SpringBoot 開啟Redis緩存及使用方法SpringBoot 開啟Redis緩存及使用方法

好了,到此結束。

到此這篇關于SpringBoot 開啟Redis緩存的文章就介紹到這了,更多相關SpringBoot Redis緩存內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 国产原创在线视频 | 久久99精品久久久久久国产越南 | 黄色网址网站在线观看 | 国产精品久久福利网站 | 欧美毛片一级的免费的 | 欧美一级做一级爱a做片性 欧美一级做一级做片性十三 | 成人三级黄色片 | 久久91精品国产91久久跳舞 | 久久综合精品不卡一区二区 | 华人欧美国产在线精品 | 理论片我不卡在线观看 | 亚洲绝美精品一区二区 | 久久久精品一区 | 操比网站| 亚洲一区播放 | 中文一区二区视频 | 国产一在线精品一区在线观看 | www在线视频在线播放 | 欧美日本一本 | 国内亚州视频在线观看 | 色琪琪综合网站 | 日韩在线视频网站 | 国产精品成人第一区 | 伊人色婷婷综在合线亚洲 | 国产精品第一 | 色综合久久中文色婷婷 | 国产在线观看麻豆91精品免费 | 欧美一级毛片一级 | 91短视频在线高清hd | 欧美一级看片a免费观看 | 一级真人毛片 | 日本黄色生活片 | 国产成人禁片免费观看 | 色综合夜夜嗨亚洲一二区 | 香蕉视频呦呦 | 国内精品久久久久香蕉 | 亚洲日本aⅴ片在线观看香蕉 | 强开小嫩苞一区二区三区l 婷婷丁香色综合狠狠色 | 97色涩| 亚洲色播永久网址大全 | 91久久在线 |