婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > SpringBoot 開啟Redis緩存及使用方法

SpringBoot 開啟Redis緩存及使用方法

熱門標(biāo)簽:沈陽營銷電銷機器人招商 機器人外呼系統(tǒng)軟件存在問題 高德地圖標(biāo)注商戶位置 兗州電話外呼營銷系統(tǒng) 智能電銷機器人銷售話術(shù) 南京400電話怎樣辦理 徐州ai電銷機器人原理 企業(yè)智能外呼系統(tǒng)價格多少 福州電銷機器人源代碼

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

Redis緩存

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

主要步驟

 1、pom.xml文件添加依賴

2、yml文件配置redis集群

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

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

5、編寫啟動類

具體實踐

整體目錄結(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>

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

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

設(shè)置序列化的Bean

設(shè)置緩存的Bean

這里有必要解釋一下

  • cacheNames.add() 這里我理解的是和controller進行綁定,畢竟很多controller的時候,這里可以確定到底那個controller開啟緩存,以及每個controller對緩存的要求可能也不一樣
  • configMap這里就是將我們對緩存的一些配置和命名空間進行關(guān)聯(lián)
  • 設(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");
        HashMapString, 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)境中,對于使用@Cacheale標(biāo)注的方法,Spring在每次執(zhí)行前都會檢查Cache中是否存在相同的key的緩存元素,如果存在就不再執(zhí)行該方法,而是從緩存中獲取結(jié)果直接進行返回,若不存在才會執(zhí)行方法并將返回結(jié)果存入指定的緩存中

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

  • @CacheEvict

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

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

檢驗結(jié)果

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

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


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

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

您可能感興趣的文章:
  • 詳解redis與spring的整合(使用緩存)
  • 淺談SpringCache與redis集成實現(xiàn)緩存解決方案
  • spring整合redis實現(xiàn)數(shù)據(jù)緩存的實例代碼
  • spring整合redisson開啟緩存方式

標(biāo)簽:昭通 丹東 景德鎮(zhèn) 邯鄲 鶴崗 大理 本溪 吉安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SpringBoot 開啟Redis緩存及使用方法》,本文關(guān)鍵詞  SpringBoot,開啟,Redis,緩存,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SpringBoot 開啟Redis緩存及使用方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于SpringBoot 開啟Redis緩存及使用方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 宁明县| 澄城县| 微山县| 滨州市| 大足县| 英山县| 临洮县| 增城市| 广水市| 景宁| 那坡县| 西宁市| 灵武市| 高台县| 宣汉县| 平顶山市| 河源市| 黑龙江省| 出国| 二手房| 桃江县| 都昌县| 丹寨县| 南丹县| 丹东市| 武强县| 长沙县| 体育| 红河县| 石首市| 佛山市| 墨竹工卡县| 佳木斯市| 海原县| 英超| 嘉定区| 湛江市| 通化县| 虹口区| 赣榆县| 右玉县|