在 Spring Boot 項(xiàng)目中使用 Redis 作為查詢緩存

  1. 在 pom.xml 文件中添加 Redis 的依賴:
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  1. 在 application.yml 文件中添加 Redis 的配置:
spring:
  redis:
    host: 127.0.0.1
    port: 6379
    database: 1
    pool:
      max-idle: 8
      min-idle: 0
      max-active: 8
      max-wait: -1
  1. 在 Application.java 類中添加 @EnableCaching 注解,啟用緩存:
@EnableCaching
@SpringBootApplication
public class Application {
  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}
  1. 在 Repository 或 Service 類的方法中添加緩存相關(guān)的注解:
import java.util.List;

import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cache.annotation.Caching;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class RuleService {
    @Transactional
    @CacheEvict(cacheNames = {"EnabledCommonRules", "EnabledRulesByPackage"}, allEntries = true)
    public void batchEnable(String[] ids) {
        repository.batchEnable(ids, CommonUtils.getCurrentUserName());
    }

    @Transactional
    @CacheEvict(cacheNames = {"EnabledCommonRules", "EnabledRulesByPackage"}, allEntries = true)
    public void batchDisable(String[] ids) {
        repository.batchDisable(ids, CommonUtils.getCurrentUserName());
    }

    @Cacheable(cacheNames = "EnabledCommonRules")
    public List<RuleDto> getEnabledCommonRules() {
        return mapper.entitiesToDtos(repository.getEnabledCommonRules());
    }

    @Cacheable(cacheNames = "EnabledRulesByPackage")
    public List<RuleDto> getEnabledRulesByPackage(String packageName) {
        return mapper.entitiesToDtos(repository.getEnabledRulesByPackage(packageName));
    }

    @Caching(evict = {@CacheEvict(cacheNames = "EnabledCommonRules", allEntries = true,
            condition = "#p0 != null && #p0.isCommon == 1"),
            @CacheEvict(cacheNames = "EnabledRulesByPackage", key = "#p0.packageName", condition = "#p0 != null")})
    public RuleDto create(RuleDto dto) {
        return super.create(dto);
    }

    @Caching(evict = {@CacheEvict(cacheNames = "EnabledCommonRules", allEntries = true,
            condition = "#p0 != null && #p0.isCommon == 1"),
            @CacheEvict(cacheNames = "EnabledRulesByPackage", key = "#p0.packageName", condition = "#p0 != null")})
    public RuleDto update(RuleDto dto) {
        return super.update(dto);
    }

    @Caching(evict = {@CacheEvict(cacheNames = "EnabledCommonRules", allEntries = true,
            condition = "#p0 != null && #p0.isCommon == 1"),
            @CacheEvict(cacheNames = "EnabledRulesByPackage", key = "#p0.packageName", condition = "#p0 != null")})
    public RuleDto delete(RuleDto dto) {
        return super.delete(dto);
    }

    @Caching(evict = {@CacheEvict(cacheNames = "EnabledCommonRules", allEntries = true,
            condition = "#result != null && #result.isCommon == 1"),
            @CacheEvict(cacheNames = "EnabledRulesByPackage", key = "#result.packageName",
                    condition = "#result != null")})
    public RuleDto delete(String id) {
        return super.delete(id);
    }

    @CacheEvict(cacheNames = {"EnabledCommonRules", "EnabledRulesByPackage"}, allEntries = true)
    public List<RuleDto> deleteInBatch(List<Rule> list) {
        return super.deleteInBatch(list);
    }

    @CacheEvict(cacheNames = {"EnabledCommonRules", "EnabledRulesByPackage"}, allEntries = true)
    public List<RuleDto> deleteInBatch(String[] ids) {
        return super.deleteInBatch(ids);
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市吏颖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鲁捏,老刑警劉巖挂疆,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旷痕,死亡現(xiàn)場離奇詭異避消,居然都是意外死亡低滩,警方通過查閱死者的電腦和手機(jī)召夹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恕沫,“玉大人监憎,你說我怎么就攤上這事∩羲荩” “怎么了鲸阔?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長迄委。 經(jīng)常有香客問我褐筛,道長,這世上最難降的妖魔是什么叙身? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任死讹,我火速辦了婚禮,結(jié)果婚禮上曲梗,老公的妹妹穿的比我還像新娘。我一直安慰自己妓忍,他們只是感情好虏两,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著世剖,像睡著了一般定罢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上旁瘫,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天祖凫,我揣著相機(jī)與錄音,去河邊找鬼酬凳。 笑死惠况,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宁仔。 我是一名探鬼主播稠屠,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼翎苫!你這毒婦竟也來了权埠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤煎谍,失蹤者是張志新(化名)和其女友劉穎攘蔽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呐粘,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡满俗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年转捕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漫雷。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡瓜富,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出降盹,到底是詐尸還是另有隱情与柑,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布蓄坏,位于F島的核電站价捧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏涡戳。R本人自食惡果不足惜结蟋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渔彰。 院中可真熱鬧嵌屎,春花似錦、人聲如沸恍涂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽再沧。三九已至尼夺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間炒瘸,已是汗流浹背淤堵。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留顷扩,地道東北人拐邪。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像隘截,于是被迫代替她去往敵國和親庙睡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理技俐,服務(wù)發(fā)現(xiàn)乘陪,斷路器,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,778評論 6 342
  • 此篇翻譯的是Spring Boot官方指南 Part III. 使用 Spring Boot (Using Spr...
    K天道酬勤閱讀 6,725評論 0 21
  • 我們平時在項(xiàng)目中設(shè)計(jì)數(shù)據(jù)訪問的時候往往都是采用直接訪問數(shù)據(jù)庫雕擂,采用數(shù)據(jù)庫連接池來實(shí)現(xiàn)啡邑,但是如果我們的項(xiàng)目訪問量過大...
    恒宇少年閱讀 45,486評論 36 110
  • 飛奔的車輪 文/張柒虹 ① 車輪不斷地飛奔前進(jìn), 沿途拋棄了芥草塵埃井赌; 把大堆大堆的小石塊摔掉谤逼, 摔掉...
    柒虹閱讀 314評論 0 1