В настоящее время я использую Redis для следующих целей:
- Кэшировать веб-страницы.
- Кэшировать SQL-запрос, дающий один результат.
Например:
@Cacheable(value = "memberCache", key = "#username.concat('')")
public MemberModel findByUsername(String username) {
return memMapper.findByUsername(username);
}
Но проблема в том, как кэшировать SQL-запрос, приводящий к нескольким результатам.
e.g.:
public List<MemberModel> findWhichAgeBiggerThan(int age) {
return memMapper.ageBiggerThan(age);
}
Теперь результат оказывается List
. Конечно, я могу кэшировать и этот результат, но если новый пользователь просто зарегистрируется в системе, результат этого запроса может измениться. Если это произойдет, кеш будет устаревшим. Как решать подобные проблемы?
Большое спасибо!