NutzCN Logo
问答 wkcache怎么设置缓存cacheKey 为map
发布于 2227天前 作者 zp8821138 2173 次浏览 复制 上一个帖子 下一个帖子
标签:

@CacheResult(cacheKey = "${args[0]}_${args[1]}_${args[2]}")
//可以通过el表达式获取传递的参数作为cacheKey
public int getPrice(String goodsId, String productId, String memberId) {
//todo
return 0;
}

这个如果传值是一个nutmap cacheKey该怎么写。。因为有的查询条件比较多,所以用的nutmap map里面的key是固定的。怎么args该怎么写才不会因为改变了某个查询条件而去查缓存。
另外@CacheDefaults(cacheName = "goods_product",cacheLiveTime = 3000) 设置了cacheLiveTime
为啥还要配置
wkcache.nutzwk_cache=1800
wkcache.cache_time_1=18000
wkcache.cache_time_2=28000
这两个time? 是优先级的原因? 这两个time代表啥意思。nutzwk_cache名称能改吗。

9 回复

key固定,但值不固定吧?

就是传的是nutmap, map里面有id,name,keyword啊这些
我怎么把这些值取出来作为key.
其实就是String goodsId, String productId, String memberId 这三个参数放到nutmap中了 我怎么写@CacheResult(cacheKey = "${args[0]}_${args[1]}_${args[2]}")。

@CacheResult(cacheKey = "${args[0].goodsId}_${args[0].productId})
 //可以通过el表达式获取传递的参数作为cacheKey
 public int getPrice(NutMap map) {
 //todo
 return 0;
 }

这样?

好的。 谢谢了。

还有这个
wkcache.nutzwk_cache=1800
wkcache.cache_time_1=18000
wkcache.cache_time_2=28000

这三个参数代表啥意思啊。

CacheDefaults/CacheResult里面的cacheName

配置文件里可以分配配置每个cachekey的有效时间(秒),过期失效~~
配置文件优先级大于代码~~主要目的是项目运维的时候可通过修改失效时间,不用去改代码~~

添加回复
请先登陆
回到顶部