首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@存储在redis外部缓存中的值。我怎么把它放在红宝石缓存里呢?

@存储在redis外部缓存中的值。我怎么把它放在红宝石缓存里呢?
EN

Stack Overflow用户
提问于 2019-01-29 12:14:05
回答 2查看 1.8K关注 0票数 1
代码语言:javascript
复制
@Override
@Cacheable("stu")
public EmployeeEntity getEmployee(Integer id) {

    return employeeDAO.findById(id).get(); 
} 

上面的代码以redis格式将键保存为"stu::7“,此处"stu”是缓存的名称,7是键,但它将缓存名称和id存储为一个键。

但是我想以这种格式存储在redis STU ->7 Stu中,应该是缓存的名称和里面的所有键值对。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-29 23:26:10

您可以将自定义密钥生成器设置为@Cacheable注释,可以根据需要自定义它:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/cache/annotation/Cacheable.html#keyGenerator--

代码语言:javascript
复制
@Cacheable(value = "stu", keyGenerator = "customKeyGenerator")

其中customKeyGenerator是自定义密钥生成器bean的名称。

票数 0
EN

Stack Overflow用户

发布于 2019-01-29 14:04:17

很奇怪,因为医生告诉我

默认值为"",意思是所有方法参数都被视为键,除非已经配置了自定义的keyGenerator()。

这是微不足道的,但是如果您之前不尝试,请尝试显式地设置键和缓存名。

代码语言:javascript
复制
@Cacheable(value = "stu", key = "{#id}")
public EmployeeEntity getEmployee(Integer id) {
    return employeeDAO.findById(id).get(); 
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54420829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档