久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot 開啟Redis緩存及使用方法

瀏覽:4日期:2023-12-01 16:02:18
目錄Redis緩存主要步驟具體實(shí)踐整體目錄結(jié)構(gòu)yml文件里配置Redis集群設(shè)置序列化的Bean編寫業(yè)務(wù)Controller關(guān)于緩存的其他注解檢驗(yàn)結(jié)果

之前不是說過Redis可以當(dāng)作緩存用嘛現(xiàn)在我們就配置一下SpringBoot使用Redis的緩存

Redis緩存

為什么用Redis作緩存用redis做緩存,是因?yàn)閞edis有著很優(yōu)秀的讀寫能力,在集群下可以保證數(shù)據(jù)的高可用

主要步驟

1、pom.xml文件添加依賴

2、yml文件配置redis集群

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

4、編寫業(yè)務(wù)Controller,添加緩存注解

5、編寫啟動(dòng)類

具體實(shí)踐整體目錄結(jié)構(gòu)

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集群

結(jié)構(gòu)是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緩存及使用方法

設(shè)置序列化的Bean

SpringBoot 開啟Redis緩存及使用方法

設(shè)置緩存的Bean

SpringBoot 開啟Redis緩存及使用方法

這里有必要解釋一下

cacheNames.add() 這里我理解的是和controller進(jìn)行綁定,畢竟很多controller的時(shí)候,這里可以確定到底那個(gè)controller開啟緩存,以及每個(gè)controller對(duì)緩存的要求可能也不一樣 configMap這里就是將我們對(duì)緩存的一些配置和命名空間進(jìn)行關(guān)聯(lián) 設(shè)置緩存時(shí)間和禁止緩存空數(shù)據(jù)應(yīng)該還好理解編寫業(yè)務(wù)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,但是為避免方法名重復(fù)導(dǎo)致的key重復(fù),所以加入id,來避免重復(fù)

關(guān)于緩存的其他注解 @CachePut

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

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

@CacheEvict

CacheEvict是用來標(biāo)注在需要清除緩存元素的方法或類上的。當(dāng)標(biāo)記在一個(gè)類上時(shí)表示其中所有的方法的執(zhí)行都會(huì)觸發(fā)緩存的清除操作@CacheEvict可以指定的屬性有value、key、condition、allEntries和beforeInvocation。其中value、key和condition的語義與@Cacheable對(duì)應(yīng)的屬性類似。即value表示清除操作是發(fā)生在哪些緩存(命名空間)上的key表示要清除的是哪個(gè)key,如未指定則會(huì)誰用默認(rèn)策略生成的key,condition表示清除操作發(fā)生的條件allEntries屬性allEntries是boolean類型的,表示是否要清除緩存中的所有元素,默認(rèn)為false,當(dāng)指定為true時(shí),會(huì)忽略指定的keybeforeInvocation屬性清除操作默認(rèn)時(shí)在對(duì)應(yīng)方法成功執(zhí)行后觸發(fā)的,即方法如果因?yàn)閽伋霎惓6茨艹晒Ψ祷匾膊粫?huì)觸發(fā)清除操作使用beforeInvocation可以改變觸發(fā)清除操作的時(shí)間,當(dāng)我們指定屬性值為true時(shí),Spring會(huì)在調(diào)用該方法之前清除緩存中的指定元素 編寫啟動(dòng)類

就是傳統(tǒng)的啟動(dòng)類

SpringBoot 開啟Redis緩存及使用方法

檢驗(yàn)結(jié)果

使用postman發(fā)送請(qǐng)求進(jìn)行檢測第一次的時(shí)候可以看到控制臺(tái)打印

SpringBoot 開啟Redis緩存及使用方法

這說明方法執(zhí)行了但是第二次發(fā)送相同請(qǐng)求的時(shí)候,可以看到拿到了數(shù)據(jù),但是方法沒有執(zhí)行,說明緩存有用了

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

好了,到此結(jié)束。

到此這篇關(guān)于SpringBoot 開啟Redis緩存的文章就介紹到這了,更多相關(guān)SpringBoot Redis緩存內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 鸡西市| 景德镇市| 蓬溪县| 富平县| 新宾| 清水县| 兴城市| 宿松县| 泽州县| 旬邑县| 白水县| 江西省| 秦皇岛市| 曲靖市| 洞头县| 苗栗市| 睢宁县| 广汉市| 子洲县| 江阴市| 将乐县| 腾冲县| 江华| 博客| 牙克石市| 连江县| 东阳市| 南安市| 福安市| 施甸县| 天柱县| 陇川县| 宁国市| 青龙| 清新县| 泰兴市| 丰都县| 祁阳县| 寿阳县| 华蓥市| 晋州市|