因此,我有一個使用Spring框架和JDBCtemplate的Java EE應用程序。而且,我的應用程序必須在同一個數據庫(這是一個Postgres數據庫,但由於一系列原因而未規範化),但使用不同的sql語句(不同的where子句)上執行多個JDBC數據庫讀取請求(無/很少寫入)。所以,鑑於這種情況,我希望能夠緩存數據庫並能夠在緩存上運行查詢,從而爲我節省昂貴的JDBC調用。因此,請建議適當的工具或框架或任何其他解決方案。使用Spring進行數據庫緩存並能夠查詢它
回答
您可以從使用簡單的地圖開始,具體取決於您正在使用的查詢參數。更可行的解決方案是使用ehcache。
如果使用Spring 3.1或更高版本,則可以在方法上使用@Cacheable
。您需要在應用程序上下文配置中包含<cache:annotation-driven />
。對於簡單的情況,你可以使用Spring的ConcurrentCacheFactoryBean作爲緩存管理器。對於更復雜的情況,您可以通過spring的ehcache適配器使用ehcache。使用@CacheEvict
來重置緩存。
我不是100%確定,但它看起來像@Cacheable是用於緩存方法返回,即如果方法被調用相同的參數,那麼它是有道理的,所以返回相同的早期緩存結果。但在我的情況下,我不希望我的DAO函數被調用相同的參數,事實上,他們很可能會每次調用不同的不同參數(導致不同的sql查詢需要被觸發),因此緩存方法沒有意義。 –
我認爲數據庫緩存很有意義,因此如果系統能夠在此緩存數據庫上使用不同的查詢語句進行查詢,則應用程序的性能會得到改善。 –
如果對@ someMethod(String someArg)使用@Cacheable,someArg值將成爲緩存中的鍵。它不需要每次都有相同的參數。如果您傳遞了之前傳遞的參數,方法將從緩存中返回值。 – androberz
- 1. 緩存數據並查詢它
- 2. 使用Node.js緩存數據庫查詢
- 3. 使用Criteria查詢進行Hibernate緩存
- 4. 保存Excel公式數據庫,並能夠使用它們後來
- 5. CodeIgniter數據庫查詢緩存問題
- 6. NHibernate的查詢緩存到數據庫
- 7. 緩存數據庫查詢結果
- 8. 緩存數據庫查詢 - 記住
- 9. 使用Memcached進行Spring-Hibernate緩存
- 10. 使用查詢進行監控的數據庫負載或性能數據庫使用查詢
- 11. 如何緩存Wordpress數據庫,以便它不查詢MySql?
- 12. 使用核心數據進行緩存
- 13. 使用Spring數據進行動態參數化查詢mongodb
- 14. Spring數據存儲庫緩存結果
- 15. Spring,Hibernate數據庫查詢
- 16. 使用Groovy的並行/並行數據庫查詢?
- 17. spring-data:緩存查詢總數
- 18. 如何使用「IN」運算符緩存數據庫查詢?
- 19. 智能(?)數據庫緩存
- 20. H2數據庫能夠使用Aggregate函數對over子句進行SQL查詢嗎?
- 21. 如何使用Volley庫從JSON數據進行緩存?
- 22. 在Spring引導中使用範圍從Cassandra數據庫中進行查詢
- 23. 在Spring中使用數組參數的方法進行緩存
- 24. 使用HibernateTemplate進行HQL查詢(Spring)
- 25. C#如何將MDB數據庫讀入內存並查詢它?
- 26. RavenDB用空數據庫緩慢查詢
- 27. CakePHP - 將緩存存儲在數據庫中並使用它與Javascript
- 28. 數據庫連接並執行查詢
- 29. 貯藏用戶ID和其他數據,並使用它來查詢數據庫
- 30. 查詢數據庫時如何避免數據緩存?
我在我的數據庫中有幾個參數,我需要一起查詢,所以簡單的地圖是不夠的。我確實看過EHCache,但並不完全確定它是否完全符合我的需求。如果有人有經驗,請告訴我它是否適合我。 –
很多企業使用ehcache。所以如果你有任何疑問,你是否可以安全地使用它;放心,這是非常好的。我自己成功地在更大的應用程序中使用了ehcache和ehcache web。去吧。 ehcache網站有很多您可以使用的信息。 – pravat