日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

基于內存和 Redis 的兩級 Java 緩存框架

來源: 責編: 時間:2024-02-29 14:36:07 242觀看
導讀環境:SpringBoot2.7.12 + j2cache2.8.51. 簡介J2Cache 是 OSChina 目前正在使用的兩級緩存框架(要求至少 Java 8)。第一級緩存使用內存(同時支持 Ehcache 2.x、Ehcache 3.x 和 Caffeine),第二級緩存使用 Redis(推薦)/Memc

環境:SpringBoot2.7.12 + j2cache2.8.5NHm28資訊網——每日最新資訊28at.com

1. 簡介

J2Cache 是 OSChina 目前正在使用的兩級緩存框架(要求至少 Java 8)。第一級緩存使用內存(同時支持 Ehcache 2.x、Ehcache 3.x 和 Caffeine),第二級緩存使用 Redis(推薦)/Memcached 。由于大量的緩存讀取會導致 L2 的網絡成為整個系統的瓶頸,因此 L1 的目標是降低對 L2 的讀取次數。該緩存框架主要用于集群環境中。單機也可使用,用于避免應用重啟導致的緩存冷啟動后對后端業務的沖擊。NHm28資訊網——每日最新資訊28at.com

數據讀取

  • 讀取順序 -> L1 -> L2 -> DB
  • 數據更新
    從數據庫中讀取最新數據,依次更新 L1 -> L2 ,發送廣播清除某個緩存信息
    接收到廣播(手工清除緩存 & 一級緩存自動失效),從 L1 中清除指定的緩存信息

2. 實戰案例

2.1 依賴管理

<dependency>  <groupId>net.oschina.j2cache</groupId>  <artifactId>j2cache-core</artifactId>  <version>2.8.5-release</version></dependency><dependency>  <groupId>net.oschina.j2cache</groupId>  <artifactId>j2cache-spring-boot2-starter</artifactId>  <version>2.8.0-release</version></dependency>

2.2 配置

redis:  # 地址, 多個地址使用‘,’逗號分割  hosts: localhost:6379  # 數據庫索引  database: 11  # 密碼  password: xxxooo  # 連接超時時間  timeout: 10s  # 連接池中的最小空閑連接  min-idle: 0  # 連接池中的最大空閑連接  max-idle: 8  # 連接池的最大數據庫連接數  max-active: 8  # #連接池最大阻塞等待時間(使用負值表示沒有限制)  max-wait: -1ms---j2cache:  openSpringCache: true  # 緩存中不存在時,運行緩存空對象  allowNullValues: true  redisClient: lettuce  l2CacheOpen: true  # 一級緩存使用caffeine  L1:    provider_class: caffeine  L2:    #使用springRedis替換二級緩存    provider_class: net.oschina.j2cache.cache.support.redis.SpringRedisProvider    config_section: redis  #使用springRedis進行廣播通知緩失效  broadcast: net.oschina.j2cache.cache.support.redis.SpringRedisPubSubPolicy# 上面配置的一級緩存為caffeine, 那么這里對一級緩存的配置就必須以這個caffeine開頭  caffeine:  # 配置一級,二級緩存的region,有效時間  region.xj: 10000, 120s---spring:  cache:    # 一級緩存使用caffeine    type: caffeine

2.3 核心操作類

@Servicepublic class UserService {  private final UserRepository userRepository ;  public UserService(UserRepository userRepository) {    this.userRepository = userRepository ;  }  @Transactional  public User save(User user) {    return this.userRepository.saveAndFlush(user) ;  }  @Cacheable(value = {"xj"}, key = "#id")  public User get(Long id) {    return this.userRepository.findById(id).orElse(null) ;  }  @Transactional  @CacheEvict(value = {"xj"}, key = "#id")  public void remove(Long id) {    this.userRepository.deleteById(id) ;  }}

以上是基本的操作,非常簡單。NHm28資訊網——每日最新資訊28at.com

2.4 Controller接口

@RestController@RequestMapping("/users")public class UserController {  private final UserService userService ;  // 通過CacheChannel操作j2cache緩存方法  private final CacheChannel cacheChannel;    public UserController(UserService userService, CacheChannel cacheChannel) {    this.userService = userService ;    this.cacheChannel = cacheChannel ;   }    @GetMapping("/save")  public User save() {    User user = new User() ;    int num = new Random().nextInt(80);    user.setAge(num) ;    user.setName("姓名 - " + num) ;    user.setSex(num >= 50 ? "男" : "女") ;    return this.userService.save(user) ;  }    @GetMapping("/{id}")  public Object get(@PathVariable("id") Long id) {    // 從指定的region,指定的key獲取數據,如果一級,二級緩存中不存在,則通過第三個參數Function手動獲取    // 如果緩存中不存在時,同時配置了允許緩存空對象,則會緩存一個空對象到緩存中    return this.cacheChannel.get("xj", id.toString(), key -> this.userService.get(id) , true) ;  }    @GetMapping("/delete/{id}")  public Object remove(@PathVariable("id") Long id) {    this.userService.remove(id) ;    return "success" ;  }  }

2.5 測試

先通過save接口添加數據NHm28資訊網——每日最新資訊28at.com

圖片圖片NHm28資訊網——每日最新資訊28at.com

查詢id=2的數據NHm28資訊網——每日最新資訊28at.com

圖片圖片NHm28資訊網——每日最新資訊28at.com

level=3 表示本次數據緩存中不存在,從數據庫中獲取的。刷新頁面NHm28資訊網——每日最新資訊28at.com

圖片圖片NHm28資訊網——每日最新資訊28at.com

level=2,本次數據從二級緩存redis中獲取。再次刷新頁面NHm28資訊網——每日最新資訊28at.com

圖片圖片NHm28資訊網——每日最新資訊28at.com

level=1,本次數據從一級緩存caffeine中獲取。后續再怎么刷新只要緩存沒有過期都將從一級緩存中獲取。NHm28資訊網——每日最新資訊28at.com

測試不存在的數據

圖片圖片NHm28資訊網——每日最新資訊28at.com

從數據庫中查詢不存在的數據。NHm28資訊網——每日最新資訊28at.com

圖片圖片NHm28資訊網——每日最新資訊28at.com

緩存了空對象。NHm28資訊網——每日最新資訊28at.com

測試刪除數據

圖片圖片NHm28資訊網——每日最新資訊28at.com

緩存中會立即清除NHm28資訊網——每日最新資訊28at.com

圖片圖片NHm28資訊網——每日最新資訊28at.com

以上是本篇文章的全部內容,希望對你有幫助。NHm28資訊網——每日最新資訊28at.com

完畢!!!NHm28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-75295-0.html基于內存和 Redis 的兩級 Java 緩存框架

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 沒看過AQS源碼,別說精通Java并發編程

下一篇: 了解HttpListener:用于創建基于HTTP協議的桌面&amp;Web應用程序

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
久久久五月天| 一区二区三区视频在线| 国产精品超碰97尤物18| 中国成人黄色视屏| 亚洲一区免费观看| 亚洲电影免费在线| 亚洲精选国产| 性做久久久久久久久| 久久夜色精品国产亚洲aⅴ| 午夜视频精品| 99视频有精品| 午夜在线观看免费一区| 久久中文欧美| 欧美性猛交99久久久久99按摩 | 国产毛片一区二区| 伊人影院久久| 激情欧美日韩| 亚洲最新在线视频| 欧美专区中文字幕| 久久精品视频免费观看| 欧美激情精品久久久久久久变态| 国产精品久久久久秋霞鲁丝 | 国产伦精品一区二区三区视频黑人 | 欧美激情中文不卡| 国产日韩一区二区三区| 日韩视频一区二区在线观看| 欧美一区二区成人6969| 欧美激情精品久久久久久免费印度| 国产精品久久网| 亚洲黄色免费| 午夜一区在线| 欧美日韩免费一区| 精品成人一区二区三区| 亚洲专区国产精品| 欧美成人精品在线观看| 国产婷婷一区二区| 亚洲视频一区在线观看| 免费观看国产成人| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美黄色日本| 国产一区二区三区久久久| 一区二区三区成人精品| 美女亚洲精品| 国产亚洲视频在线| 亚洲一区二区三区久久| 欧美激情1区2区3区| 激情综合自拍| 欧美专区日韩专区| 国产精品久久久久久久9999| 亚洲精品中文字幕女同| 久久性天堂网| 国产夜色精品一区二区av| 亚洲一区二区在线观看视频| 欧美激情综合五月色丁香小说| 在线播放豆国产99亚洲| 久久国产精品亚洲va麻豆| 国产精品毛片va一区二区三区| 日韩视频一区二区| 欧美成人免费在线观看| 影音先锋久久精品| 久久九九国产精品| 国产欧美综合一区二区三区| 亚洲午夜免费视频| 欧美日韩中文在线| 99亚洲一区二区| 欧美精品日韩综合在线| 亚洲国产另类久久久精品极度| 久久久欧美一区二区| 欧美18av| 精品福利免费观看| 久久精品夜夜夜夜久久| 国产亚洲欧美一区二区| 小嫩嫩精品导航| 国产精品自拍一区| 午夜精彩视频在线观看不卡| 国产精品久久久久久久免费软件 | 一区二区不卡在线视频 午夜欧美不卡'| 欧美成人自拍视频| 亚洲国产综合视频在线观看| 美国成人直播| 136国产福利精品导航网址| 久久午夜国产精品| 在线看片欧美| 欧美不卡福利| 亚洲日本va午夜在线电影| 欧美国产一区在线| 国产欧美日韩综合| 性色av一区二区三区| 国产精品揄拍500视频| 性欧美18~19sex高清播放| 国产精品手机在线| 午夜综合激情| 国产一区二区三区在线观看网站 | 亚洲综合不卡| 国产欧美一区二区三区沐欲 | 欧美一区二区三区免费观看视频| 国产欧美日韩视频| 久久精品卡一| 亚洲国产精品久久人人爱蜜臀 | 另类专区欧美制服同性| 亚洲国产欧美另类丝袜| 欧美日韩黄色大片| 亚洲自拍偷拍麻豆| 国产一区二区三区日韩欧美| 久久男女视频| 亚洲人成网站777色婷婷| 欧美日韩免费区域视频在线观看| 亚洲一区视频在线| 国内精品嫩模av私拍在线观看| 狂野欧美一区| 一本色道88久久加勒比精品| 国产精品日韩欧美| 久久久精品视频成人| 91久久国产综合久久91精品网站 | 一区一区视频| 欧美区在线观看| 亚洲大胆av| 欧美日本在线| 性做久久久久久久久| 悠悠资源网久久精品| 欧美日韩不卡视频| 性欧美video另类hd性玩具| 伊人久久成人| 欧美日韩激情网| 欧美伊人精品成人久久综合97| 在线免费观看日韩欧美| 欧美日韩在线视频首页| 久久国产精品久久久久久久久久| 亚洲高清一区二| 国产精品成人aaaaa网站| 久久久久久亚洲精品不卡4k岛国| 亚洲三级免费| 国产日产高清欧美一区二区三区| 欧美成人蜜桃| 亚洲欧洲日韩综合二区| 猫咪成人在线观看| 一区二区成人精品| 国内精品久久久久伊人av| 欧美精品一区三区| 亚洲乱码日产精品bd| 国产精品一国产精品k频道56| 麻豆精品91| 亚洲欧美日韩一区二区三区在线| 亚洲电影自拍| 国产欧美韩日| 欧美日韩一区二区三区在线| 久久久99爱| 亚洲一区二区在线免费观看| 亚洲国产高清高潮精品美女| 国产精品夜夜夜| 久久高清福利视频| 亚洲最新在线视频| 亚洲高清av| 欧美福利一区| 欧美大片免费久久精品三p | 亚洲欧美视频在线观看视频| 亚洲三级色网| 欧美一区91| 欧美日韩在线观看一区二区| 欧美日韩另类一区| 欧美午夜无遮挡| 亚洲欧洲精品成人久久奇米网| 久久精品国产综合精品| 国产精品制服诱惑| 午夜在线视频观看日韩17c| 欧美视频在线观看免费| 亚洲素人一区二区| 亚洲国产精品成人精品| 国产精品嫩草99av在线| 亚洲欧美在线免费| 国产亚洲精品高潮| 欧美一区二区在线看| 激情综合网激情| 欧美诱惑福利视频| 国产色产综合产在线视频| 一本一本久久a久久精品综合妖精| 久久精品视频免费播放| 国产精品视频免费观看| 欧美亚洲在线播放| 国产亚洲精品一区二区| 欧美连裤袜在线视频| 亚洲天堂av图片| 一区二区三区在线不卡| 欧美福利视频网站| 亚洲精品国产精品乱码不99| 国产精品成人播放| 一区二区三区波多野结衣在线观看| 欧美无砖砖区免费| 亚洲线精品一区二区三区八戒| 亚洲高清在线播放| 精品91视频| 在线播放精品| 亚洲国产成人tv| 亚洲国产精品999| 亚洲第一中文字幕在线观看| 亚洲激情视频网| 亚洲激情视频| 亚洲电影免费| 99视频+国产日韩欧美| 亚洲欧洲一区二区三区久久| 国产精品日韩久久久| 久久久久国产一区二区三区四区| 国产精品99久久久久久宅男| 亚洲欧洲三级|