我將具有唯一標識的圖像作爲BLOB存儲在數據庫中,並通過從數據庫中流式傳輸將它們顯示在jsp頁面中。想知道是否有辦法緩存圖像,這樣我就不必因流入數據庫而產生延遲。我會建議如果有人提出一些片段/例子,以實現圖像緩存。緩存數據庫中的圖像
1
A
回答
2
你不說什麼,你需要幫助,但這裏是我會做的過程的一部分:你有
首先要創建一個類來保存高速緩存和元數據。我們稱之爲ImageCache。當然,你需要一個字符串作爲圖像名稱,一個字節[]來保存圖像內容本身。然後將它們的集合添加到當前從數據庫中提取圖像的類中。當圖像請求進入時,搜索集合中的文件名。如果找到了,只需發送字節[]。如果它不在集合中,請從db中讀取它,然後從中創建一個新的ImageCache對象並將其添加到集合中。
對於獎勵積分,請包含Date lastAccessed字段和比較器。比較器和日期字段將允許您維護緩存。假設您的緩存可容納50張圖像(基於可用內存)。您的比較器可用於按LRU (Least Recently Used)的順序對ImageCache對象的集合進行排序,按lastAccesed按升序排序。當收集達到最大條目時,找到最舊的lastAccessed條目,並將其替換。這將爲您提供最佳的緩存命中率,同時不佔用所有堆內存。
另一種選擇是隻使用Hibernate作爲程序和數據庫之間的抽象層。這將提供許多好處,其中之一將是高度可配置的並且完全自動緩存。
+0
最初的外觀。讓我咀嚼更多這一點。 – 2011-04-18 02:52:02
0
只需在網頁服務器前打上nginx(一個http緩存反向代理)。代碼已經寫好了,所以就使用它。
相關問題
- 1. 存儲在數據庫中的MVC3高速緩存圖像
- 2. 圖庫中的圖像緩存
- 3. Android緩存數據庫存儲圖像位圖
- 4. 緩存iOS上的圖像/數據點
- 5. 緩存數據庫數據
- 6. 緩存數據庫
- 7. 數據庫緩存
- 8. 從數據庫緩存動態生成的圖像
- 9. 從數據庫緩慢加載圖像
- 10. 在python中緩存數據庫數據
- 11. Django的數據庫緩存
- 12. 核心數據和圖像緩存
- 13. 緩存視頻和圖像數據 - Couchbase
- 14. 如何在圖庫中存儲SQLite數據庫中的圖像
- 15. 在SQLite數據庫中保存圖像
- 16. 在數據庫中存儲圖像
- 17. 圖像保存在數據庫中
- 18. 圖像存儲在mysql數據庫中
- 19. 在mvc數據庫中存儲圖像
- 20. 在數據庫中保存圖像
- 21. 圖像不保存在數據庫中
- 22. 將圖像保存到數據庫中
- 23. 在數據庫中存儲圖像
- 24. 在數據庫中存儲圖像
- 25. 在數據庫中存儲圖像
- 26. 將圖像存儲在數據庫中
- 27. 緩存或存儲在數據庫中?
- 28. Hazelcast緩存數據庫數據緩存的Java
- 29. iOS的哪個圖像緩存庫?
- 30. android中的圖像緩存
難道你不能將它們與DB blob一起存儲在文件中嗎?這樣你就可以查找名稱/位置並從一個(希望)較少的磁盤訪問它們。 – bdares 2011-04-18 00:02:41
這將是mismtach的候選人。我想避免在兩個地方有圖像,並希望將它們放在數據庫中,以便輕鬆移植它們。 – 2011-04-18 00:04:43
好吧,我說你可以將它們存儲在數據庫中,並將它們存儲在文件中。這需要兩倍的空間,但是直到你想移植它們,你可以使用數據庫作爲備份和文件來更快地檢索。 – bdares 2011-04-18 01:58:54