我有個問題。我有一個應用程序,我從數據庫中獲取數據(使用休眠)。我希望:每個用戶在白天只從數據庫下載一次數據。所以我想緩存從數據庫中得到的結果。我使用Hibernate的Spring框架,我知道他們都有一些緩存的可能性。但是,我不知道它們之間有什麼區別,什麼是更好的選擇。威爾感謝答案。休眠緩存和Spring遠程緩存有什麼區別?
1
A
回答
2
Hibernate有2級緩存。 1. First level 2. Second level
Second level chache
適用於整個應用程序,first level cache
適用於當前的hibernate會話。有每個用戶可用的no cache
。
另外如果你使用spring managed beans + caching。有一項規定可以緩存整個應用程序的Bean而不是用戶。 (對此不太確定)
這聽起來就是你想要在user's session
中存儲數據。即,只要用戶正在進行活動會話。 Spring有一個session scoped beans
您可能想要使用它們來緩存每個用戶的數據。
3
從我的角度來看,從Hibernate緩存開始是一個更謹慎的決定,尤其是因爲兩者不排斥對方。在性能方面,Spring緩存可以爲您提供更多,更高的堆棧空間,您可以緩存業務結果(基本上比使用hibernate的二級緩存更能緩存)。
但是,一個突出的區別是清除緩存。有了Spring緩存,你需要明確地清除,而如果你的插入,更新和刪除操作通過hibernate的框架,hibernate緩存會自動維護。
在我參與的項目中,假設使用hibernate的二級緩存,這幾乎是默認的。我們使用Spring緩存來處理更加靜態的數據。
相關問題
- 1. 休眠緩存級別1
- 2. cpu緩存和內存緩存有什麼區別
- 3. 休眠緩存保存什麼?
- 4. 休眠緩存
- 5. 緩存和共享有什麼區別?
- 6. 引發緩存和空緩存之間有什麼區別?
- 7. l1緩存和l2緩存有什麼區別?
- 8. 客戶端緩存和服務器緩存有什麼區別
- 9. HDF5:「文件緩衝區」和「文件緩存」有什麼區別?
- 10. Spring-Boot - 激活休眠二級緩存
- 11. Ehcache中「緩存未命中」和「內存緩存未命中」有什麼區別?
- 12. 緩衝區和緩存區別?
- 13. GPU中共享內存和L1緩存有什麼區別?
- 14. 緩存和應用程序有什麼區別?
- 15. 休眠:batch_size?二級緩存?
- 16. 休眠禁用緩存
- 17. 使用休眠緩存
- 18. 關於休眠緩存
- 19. infinispan休眠緩存驅逐
- 20. 與Echache +休眠緩存
- 21. 緩存集合休眠
- 22. 休眠緩存錯誤
- 23. 休眠緩存問題
- 24. 休眠二級緩存
- 25. 禁用休眠緩存
- 26. 休眠的Jboss緩存
- 27. 休眠二級緩存
- 28. 休眠集合緩存
- 29. 休眠緩存問題?
- 30. 休眠:一級緩存