gpt4 book ai didi

用于将缓存名称附加到 key 的 Spring KeyGenerator

转载 作者:IT王子 更新时间:2023-10-29 06:09:40 24 4
gpt4 key购买 nike

我正在使用带有 Redis 的 spring 缓存进行缓存

我有以下方法:

    @CachePut(value ="DATA1", key = "#key1")
public Object saveData1(long key1, Object obj) {
return obj;
}


@CachePut(value ="DATA2", key = "#key1")
public Object saveData2(long key1, Object obj) {
return obj;
}

这会导致键冲突并且数据被覆盖。

我想生成附加了缓存名称的 key 。

比如:DATA1-key1,DATA2-key1。

这可能吗?

我见过几个使用类名和方法名的例子。但是我想使用缓存名称。

谢谢。

最佳答案

像这样创建一个自定义 key 生成器:

@Component("myKeyGenerator")
public class MyKeyGenerator implements KeyGenerator {
public Object generate(Object target, Method method, Object... params) {
String[] value = new String[1];
long key;
CachePut cachePut = method.getAnnotation(CachePut.class);
if (cachePut != null) {
value = cachePut.value();
}
key = (long) params[0];
return value[0] + "-" + key;
}
}

然后像下面这样使用它:

@CachePut(value = "DATA1", keyGenerator = "myKeyGenerator")

我还没有对此进行测试,但应该可以工作,至少你会知道如何去做。

关于用于将缓存名称附加到 key 的 Spring KeyGenerator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42485300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com