Caching 基于Spring缓存的MySql Redis缓存策略
目前我使用Redis的目的如下:Caching 基于Spring缓存的MySql Redis缓存策略,caching,redis,spring-cache,Caching,Redis,Spring Cache,目前我使用Redis的目的如下: 缓存网页 缓存导致单个结果的SQL查询 例如: @Cacheable(value = "memberCache", key = "#username.concat('')") public MemberModel findByUsername(String username) { return memMapper.findByUsername(username); } 但问题是如何缓存导致多个结果的SQL查询 e、 g: public List fin
@Cacheable(value = "memberCache", key = "#username.concat('')")
public MemberModel findByUsername(String username) {
return memMapper.findByUsername(username);
}
但问题是如何缓存导致多个结果的SQL查询
e、 g:
public List find hagebiggethan(整数年龄){
返回memMapper.ageBiggerThan(age);
}
现在结果变成了一个列表
。当然我也可以缓存这个结果,但是如果一个新用户刚刚注册到系统,这个查询的结果可能会改变。如果发生这种情况,缓存将过时。如何解决这样的问题
非常感谢你 您可以使用Redis哈希,而不是使用列表: 您的方法如下所示:
public Map<String, MemberModel> findWhichAgeBiggerThan(int age) {
// return map with key as String(may be user id) and actual MemberModel
}
要添加任何其他数据,只需使用上面的命令和类似于
hset members student_new MemberModel_new
在此,成员将使用新数据添加/更新现有的“nembers”密钥
hset members student1 MemberModel1 student2 MemberModel2
hset members student_new MemberModel_new