Skip to content

Latest commit

 

History

History
68 lines (63 loc) · 7.05 KB

Config.md

File metadata and controls

68 lines (63 loc) · 7.05 KB

Here is an example of yml config file in Spring Boot:

jetcache:
  statIntervalMinutes: 15
  areaInCacheName: false
  hidePackages: com.alibaba
  local:
    default:
      type: caffeine
      limit: 100
      keyConvertor: fastjson2 #other choose:fastjson/jackson
      expireAfterWriteInMillis: 100000
    otherArea:
      type: linkedhashmap
      limit: 100
      keyConvertor: none
      expireAfterWriteInMillis: 100000
  remote:
    default:
      type: redis
      keyConvertor: fastjson2 #other choose:fastjson/jackson
      broadcastChannel: projectA
      valueEncoder: java #other choose:kryo/kryo5
      valueDecoder: java #other choose:kryo/kryo5
      poolConfig:
        minIdle: 5
        maxIdle: 20
        maxTotal: 50
      host: ${redis.host}
      port: ${redis.port}
    otherArea:
      type: redis
      keyConvertor: fastjson2 #other choose:fastjson/jackson
      broadcastChannel: projectA
      valueEncoder: java #other choose:kryo/kryo5
      valueDecoder: java #other choose:kryo/kryo5
      poolConfig:
        minIdle: 5
        maxIdle: 20
        maxTotal: 50
      host: ${redis.host}
      port: ${redis.port}

You can configure GlobalCacheConfig directly without Spring Boot. It's similar. See getting started tutorial.

The description of configuration listed in the below table:

configuration key default value description
jetcache.statIntervalMinutes 0 Specify statistic interval, in minutes. 0 indicate no statistics.
jetcache.areaInCacheName true(2.6-) false(2.7+) jetcache-anno use cache name as remote cache key prefix, in jetcache 2.4.3 and previous version, it allways add area name in cache name. Since 2.4.4 we have this config item, for compatible reason default value is true. However false value are more reasonable for new project. 2.7 changes default value to false
jetcache.hiddenPackages undefined The package name startsWith(hiddenPackages) will be cut off in the generated cache instance name.
jetcache.[local/remote].${area}.type undefined Type of the backend cache system. Can be tair, redis for remote cache ,or linkedhashmap, caffeine for local cache.
jetcache.[local/remote].${area}.keyConvertor fastjson2 Global config of key convertor. 2.6.5+ support key convertor: fastjson2/jackson;
2.6.5- only build-in key convertor: fastjson. You can use none only in the case of @CreateCache(cacheType=CacheType.LOCAL), in this situation equals is used to distinguish key. Method caching must specify a keyConvertor
jetcache.[local/remote].${area}.valueEncoder java Global config of value encoder, only remote cache need it. 2.7+ support valueEncoder: java/kryo/kryo5;2.6- build-in valueEncoder: java/kryo
jetcache.[local/remote].${area}.valueDecoder java Global config of value decoder, only remote cache need it. 2.7+ support valueEncoder: java/kryo/kryo5;2.6- build-in valueEncoder: java/kryo
jetcache.[local/remote].${area}.limit 100 Global config of max elements in local memory for each Cache instance. Only local cache need it.
jetcache.[local/remote].${area}.expireAfterWriteInMillis infinity Global config of write expire time, in millis.
jetcache.remote.${area}.broadcastChannel n/a jetcahe2.7 support invalidate local cache of other jvm after updatation (cacheType = CacheType.BOTH), this config specify broadcast channel, this feature disabled if not set
jetcache.local.${area}.expireAfterAccessInMillis 0 Global config of read expire time, in millis. Need jetcache2.2+, only local cache support this feature. 0 indicates disabled read expire feature.

The ${area} of the above table is the area attribute of @Cached and @CreateCache. Note that the default value of area attribute of the two annotation is "default".

There are multi place which the write expire time can be set:

  1. if a method like put in Cache interface sets expire, then use it.
  2. if not set in method like put, use default expire of the Cache instance
  3. the default expire of the Cache instance can be set in attribute on @CreateCache or @Cached, if not, JetCache use global config defaultExpireInMillis defined in yml(for instance @Cached(cacheType=local) use jetcache.local.default.expireAfterWriteInMillis), if there is not defined yet then use infinity.