2017-04-25 207 views
1

我使用彈簧引導1.5.2.RELEASE和彈簧數據redis和彈簧數據jpa。彈簧引導數據redis集成彈簧數據jpa

  1. 我想,如果數據不能從Redis的foud,然後從MySQL從Redis的第一

  2. 查詢數據。

是這樣的:

get方法

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數據redis存儲庫可以做同樣的事情,以及如何?

在此先感謝。

+0

您是否嘗試過使用'@ Cacheable'和'@ CacheDelete'註釋到您的服務? Spring Data Redis帶有一個可以利用你的方法的Cache實現。 – mp911de

+0

你有一些簡單的演示嗎?謝謝。 – diligent

回答

1

Spring Data Redis應該能夠滿足您的要求。我的建議是在內存緩存中使用@Cacheable以及其他註釋對你的方法進行自動配置。一旦工作,將Redis包含在您的依賴項中即可插入Redis。您可能遇到序列化問題,但這是一個不同的問題。
Spring Boot Caching Guide。使用內存緩存確實非常簡單。您可以在方法中添加一些打印語句來驗證它們何時運行以及結果何時被緩存。
More useful spring boot cache info