@Override@Cacheable("stu")public EmployeeEntity getEmployee(Integer id) { return employeeDAO.findById(id).get(); } 上面的代码以这种格式“stu::7”将键保存在redis中,这里“stu”是缓存的名称,7是键,但是它将缓存名称和id存储为一个键。但我想以这种格式存储在 redis STU -> 7 Stu 应该是缓存的名称,并且在里面所有的键值对。
2 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
您可以将自定义密钥生成器设置为@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 的名称在哪里。
眼眸繁星
TA贡献1873条经验 获得超9个赞
这很奇怪,因为文档告诉
默认为“”,这意味着所有方法参数都被视为一个键,除非配置了自定义 keyGenerator()。
这很简单,但是如果您以前不尝试,请尝试显式设置键和缓存名称
@Cacheable(value = "stu", key = "{#id}")
public EmployeeEntity getEmployee(Integer id) {
return employeeDAO.findById(id).get();
}
添加回答
举报
0/150
提交
取消