@Override
@Cacheable("stu")
public EmployeeEntity getEmployee(Integer id) {
return employeeDAO.findById(id).get();
}
以上代码将密钥以以下格式“ stu :: 7”保存在redis中。 这里的“ stu”是缓存的名称,键7是密钥,但它将缓存的名称和id存储为一个密钥。
但是我想以这种格式存储在Redis STU中-> 7 Stu应该是缓存的名称,并且在所有键值对的内部。
答案 0 :(得分:0)
这很奇怪,因为文档告诉了我们
默认值为“”,这意味着除非已配置自定义keyGenerator(),否则所有方法参数都被视为键。
这很简单,但是如果您之前没有尝试过,请尝试显式设置键和缓存名称
@Cacheable(value = "stu", key = "{#id}")
public EmployeeEntity getEmployee(Integer id) {
return employeeDAO.findById(id).get();
}
答案 1 :(得分:0)
您可以将自定义密钥生成器设置为@Cacheable
批注,您可以根据需要对其进行自定义:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/cache/annotation/Cacheable.html#keyGenerator--
@Cacheable(value = "stu", keyGenerator = "customKeyGenerator")
customKeyGenerator
是自定义密钥生成器bean的名称。