成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

阿里開源的緩存框架JetCache

MageekChiu / 2202人閱讀

摘要:是一個(gè)基于的緩存系統(tǒng)封裝,提供統(tǒng)一的和注解來簡(jiǎn)化緩存的使用。提供了比更加強(qiáng)大的注解,可以原生的支持兩級(jí)緩存分布式自動(dòng)刷新,還提供了接口用于手工緩存操作。緩存失效時(shí)間緩存的類型,包括。

之前一直在用Spring Cache進(jìn)行接口數(shù)據(jù)的緩存,主要是Spring Cache在對(duì)具體key緩存失效時(shí)間的設(shè)置不是很方法,還要自己去擴(kuò)展,無意中發(fā)現(xiàn)了阿里的JetCache。大部分的需求都能滿足,并且有一些很實(shí)用的功能,今天給大家介紹下。

JetCache是一個(gè)基于Java的緩存系統(tǒng)封裝,提供統(tǒng)一的API和注解來簡(jiǎn)化緩存的使用。 JetCache提供了比SpringCache更加強(qiáng)大的注解,可以原生的支持TTL、兩級(jí)緩存、分布式自動(dòng)刷新,還提供了Cache接口用于手工緩存操作。 當(dāng)前有四個(gè)實(shí)現(xiàn),RedisCache、TairCache(此部分未在github開源)、CaffeineCache(in memory)和一個(gè)簡(jiǎn)易的LinkedHashMapCache(in memory),要添加新的實(shí)現(xiàn)也是非常簡(jiǎn)單的。

GitHub:https://github.com/alibaba/je...

全部特性:

通過統(tǒng)一的API訪問Cache系統(tǒng)

通過注解實(shí)現(xiàn)聲明式的方法緩存,支持TTL和兩級(jí)緩存

通過注解創(chuàng)建并配置Cache實(shí)例

針對(duì)所有Cache實(shí)例和方法緩存的自動(dòng)統(tǒng)計(jì)

Key的生成策略和Value的序列化策略是可以配置的

分布式緩存自動(dòng)刷新,分布式鎖 (2.2+)

異步Cache API (2.2+,使用Redis的lettuce客戶端時(shí))

Spring Boot支持

體驗(yàn)一下

增加Maven配置:


    com.alicp.jetcache
    jetcache-starter-redis
    2.5.11

配置內(nèi)容:

# 采用Java序列化存儲(chǔ)
jetcache.remote.default.valueDecoder = java
# Key的轉(zhuǎn)換器
jetcache.remote.default.keyConvertor = fastjson
# 是否加入緩存key前綴
jetcache.areaInCacheName = false
jetcache.remote.default.valueEncoder = java
# 緩存類型。tair、redis為當(dāng)前支持的遠(yuǎn)程緩存;linkedhashmap、caffeine為當(dāng)前支持的本地緩存類型
jetcache.local.default.type = linkedhashmap
# 控制臺(tái)輸出統(tǒng)計(jì)數(shù)據(jù),統(tǒng)計(jì)間隔,0表示不統(tǒng)計(jì)
jetcache.statIntervalMinutes = 15
jetcache.local.default.keyConvertor = fastjson
jetcache.remote.default.uri = redis://192.168.0.210:6379/

remote 表示遠(yuǎn)程緩存

local表示本地緩存

啟動(dòng)類開啟緩存:

@SpringBootApplication
@EnableMethodCache(basePackages = "com.cxytiandi.jetcache")
@EnableCreateCacheAnnotation
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class);
    }
}

@EnableMethodCache

用于激活@Cached注解的使用

@EnableCreateCacheAnnotation

用于激活@CreateCache注解的使用

定義一個(gè)簡(jiǎn)單的實(shí)體類來作為數(shù)據(jù)的緩存,必須實(shí)現(xiàn)Serializable接口。

@Data
public class User implements Serializable {

    private Long id;
    
    private String name;

}

@CreateCache使用

@CreateCache(expire = 100)
private Cache userCache;

User user = new User();
user.setId(1L);
user.setName("yinjihuan");
// 新增緩存
userCache.put(1L, user);

// 刪除緩存
userCache.remove(1L);

用起來很簡(jiǎn)單,就像操作本地Map一樣,@CreateCache中有很多配置需要我們自己去指定,不指定則使用默認(rèn)的,關(guān)于配置請(qǐng)查看文檔:https://github.com/alibaba/jetcache/wiki/CreateCache_CN

@Cached使用

@Cached(name="getUser.", key="#id", expire = 8, cacheType=CacheType.BOTH)
@Override
public User getUser(Long id) {
    User user = new User();
    user.setId(1L);
    user.setName("yinjihuan");
    return user;
}

name

緩存名稱

key

緩存key,追加到name后面構(gòu)成唯一的緩存key, 使用SpEL指定key,如果沒有指定會(huì)根據(jù)所有參數(shù)自動(dòng)生成。

expire

緩存失效時(shí)間

cacheType

緩存的類型,包括CacheType.REMOTE、CacheType.LOCAL、CacheType.BOTH。如果定義為BOTH,會(huì)使用LOCAL和REMOTE組合成兩級(jí)緩存

更多配置的介紹請(qǐng)查看文檔:https://github.com/alibaba/jetcache/wiki/MethodCache_CN

今天的介紹就到這里,使用起來還是很方便的,關(guān)于更多的功能大家自行去嘗試吧,比如緩存定時(shí)刷新,緩存命中率統(tǒng)計(jì),自定義序列化方式等等。

整合Apollo的坑
在這邊提一個(gè)容易被坑到的點(diǎn),如果你們的配置都是在Apollo中進(jìn)行管理的話,那么在集成的時(shí)候會(huì)有個(gè)問題,需要在項(xiàng)目中加上下面的配置才行,其余的配置可以放Apollo中。

spring.application.name=district-service
app.id=${spring.application.name}
apollo.bootstrap.enabled=true
// 這是你要加的,指定緩存類型,我這邊用的是lettuce
jetcache.remote.default.type=redis.lettuce

@Cached定義在接口上的坑
還有一個(gè)呢就是@Cached如果定義在接口上就不能指定key屬性,框架中會(huì)自動(dòng)根據(jù)參數(shù)生成key, 如果非得自己用SPEL表達(dá)式指定key的話,項(xiàng)目編譯設(shè)置target必須為1.8格式,并且指定javac的-parameters參數(shù),否則就要使用key="args[0]"這樣按下標(biāo)訪問的形式。我建議還是把@Cached的定義放在實(shí)現(xiàn)類上,也方便修改。

我這邊也錄制了一套視頻,感興趣的可以去了解下:http://cxytiandi.com/course/24

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74083.html

相關(guān)文章

  • 阿里巴巴開源通用緩存訪問框架JetCache介紹

    摘要:是由阿里巴巴開源的通用緩存訪問框架,如果你對(duì)很熟悉的話,請(qǐng)一定花一點(diǎn)時(shí)間了解一下,它更好用。有了,我們就可以更方便的基于統(tǒng)一的接口訪問緩存。 JetCache是由阿里巴巴開源的通用緩存訪問框架,如果你對(duì)Spring Cache很熟悉的話,請(qǐng)一定花一點(diǎn)時(shí)間了解一下JetCache,它更好用。 JetCache提供的核心能力包括: 提供統(tǒng)一的,類似jsr-107風(fēng)格的API訪問Cache...

    vpants 評(píng)論0 收藏0
  • 【深度】| 值得收藏阿里開源技術(shù)

    摘要:淘寶定制基于,是國內(nèi)第一個(gè)優(yōu)化定制且開源的服務(wù)器版虛擬機(jī)。數(shù)據(jù)庫開源數(shù)據(jù)庫是基于官方版本的一個(gè)分支,由阿里云數(shù)據(jù)庫團(tuán)隊(duì)維護(hù),目前也應(yīng)用于阿里巴巴集團(tuán)業(yè)務(wù)以及阿里云數(shù)據(jù)庫服務(wù)。淘寶服務(wù)器是由淘寶網(wǎng)發(fā)起的服務(wù)器項(xiàng)目。 Java JAVA 研發(fā)框架 SOFAStack SOFAStack(Scalable Open Financial Architecture Stack)是用于快速構(gòu)建金融...

    econi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<