@CacheName: 指定緩存實(shí)例注解
@CacheKeyMethod:緩存key生成注解
---------------------------------讀取-------------------------------------------
@ReadThroughAssignCache(assignedKey = "SomePhatKey", namespace = "Echo", expiration = 3000): 讀取指定key緩存
@ReadThroughSingleCache(namespace = SINGLE_NS, expiration = 0):讀取單個(gè)緩存
@ReadThroughMultiCache(option = @ReadThroughMultiCacheOption(generateKeysFromResult = true)):讀取多個(gè)緩存
@ReadThroughMultiCacheOption(generateKeysFromResult = true) 讀取多個(gè)緩存操作generateKeysFromResult 通過結(jié)果生成key
---------------------------------更新-------------------------------------------
@UpdateAssignCache(assignedKey = "SomePhatKey", namespace = "Echo", expiration = 3000): 指定key更新緩存
@UpdateSingleCache(namespace = SINGLE_NS, expiration = 2): 更新單個(gè)緩存(namespace 命名空間, expiration 失效時(shí)間單位秒)
@UpdateMultiCache(namespace = "Bravo", expiration = 300): 更新多個(gè)緩存
---------------------------------失效-------------------------------------------
@InvalidateAssignCache(assignedKey = "SomePhatKey", namespace = "Echo") : 指定key失效緩存
@InvalidateSingleCache(namespace = SINGLE_NS):失效單個(gè)緩存
@InvalidateMultiCache(namespace = "Delta") : 失效多個(gè)緩存
---------------------------------參數(shù)-------------------------------------------
@ParameterDataUpdateContent: 標(biāo)記方法的參數(shù)作為更新內(nèi)容。這個(gè)注解應(yīng)結(jié)合Update*Cache注解使用
@ParameterValueKeyProvider: 標(biāo)記將方法的參數(shù)做為計(jì)算緩存key.如果方法被注解的對(duì)象標(biāo)記CacheKeyMethod的方法將會(huì)用來生成緩存key否則調(diào)用toString()生成
@ParameterValueKeyProvider(order=0) 屬性表示如果多個(gè)參數(shù)做為key時(shí)需提供參數(shù)順序
與@ParameterValueKeyProvider類似的注解有:
{
@ReturnValueKeyProvider: 返回值對(duì)象中計(jì)算key
}
---------------------------------泛型處理-------------------------------------------
@BridgeMethodMappings({ @BridgeMethodMapping(methodName = "updateUser",
erasedParamTypes = { Object.class }, targetParamTypes = { AppUser.class }) }): 泛型橋接注解
methodName : 指定方法
erasedParamTypes : 擦除對(duì)象類型
targetParamTypes : 目標(biāo)轉(zhuǎn)換類型
---------------------------------計(jì)數(shù)器-------------------------------------------
@InvalidateAssignCache :在給的計(jì)算器上加1. 如果不存在則初始化為1
@DecrementCounterInCache : 在給的計(jì)數(shù)器上減1
@ReadCounterFromCache :讀取計(jì)數(shù)器
@UpdateCounterFromCache : 更新計(jì)數(shù)器
Simple-Spring-Memcached代碼閱讀之BridgeMethod
http://www.colorfuldays.org/program/java/bridgemethod%E7%9A%84%E4%BD%9C%E7%94%A8/
http://www.colorfuldays.org/tag/ssm/ 這個(gè)系列不錯(cuò)
b. 以bean的方式使用Cache對(duì)象
某些場(chǎng)景我們希望更便捷地自己手動(dòng)來管理緩存數(shù)據(jù),此時(shí)需要使用Simple-Spring-Memcached配置中定義的bean。以上面的配置文件為例,使用方法如下
bean的注入:
@Autowired private Cache appCache;
bean的使用:
appCache.set(Constants.CACHE_KEY + members.getMemberId(), 3600,cacheValue);