Spring Boot Data Redis интегрирован с Spring Data JPA

Я использую весеннюю загрузку 1.5.2.RELEASE и весенние данные Redis и весенние данные jpa.

  1. Я хочу сначала запросить данные из Redis

  2. если данные не могут быть получены из redis, то из mysql.

что-то вроде этого:

метод получения

Object cacheValue = cache.get("key");
if(null != cacheValue){
    return cacheValue;
} else {
    Object dbValue = getFromInDb("key");
    cache.set("key", value);
    return dbValue;
}

метод удаления

Object cacheValue = cache.get("key");
if(null != cacheValue){
    cache.delete("key");
    db.deleteByKey("key")
} else {
    db.deleteByKey("key")
}

Сейчас я использую spring aop, я могу закончить работу. Интересно, могу ли я использовать репозиторий Spring Data Redis для того же самого и как?

заранее спасибо.


person diligent    schedule 25.04.2017    source источник
comment
Пробовали ли вы использовать аннотации @Cacheable и @CacheDelete к своему сервису? Spring Data Redis поставляется с реализацией Cache, которая может использовать ваш подход.   -  person mp911de    schedule 25.04.2017
comment
у вас есть простая демонстрация? Спасибо.   -  person diligent    schedule 25.04.2017


Ответы (1)


Spring Data Redis должен соответствовать вашим требованиям. Мой совет состоял бы в том, чтобы заставить автоматически настроенное кэширование памяти работать, используя @Cacheable и другие аннотации к вашим методам. После работы подключите Redis, включив Redis в свои зависимости. У вас могут возникнуть проблемы с сериализацией, но это другая проблема.
Руководство по кэшированию Spring Boot. Это действительно так просто использовать кеш в памяти. Вы можете добавить несколько операторов печати в свои методы, чтобы проверять, когда они запускаются и когда результат кэшируется.
Дополнительная полезная информация о весеннем загрузочном кэше

person Karl Galvez    schedule 27.04.2017