2013-07-22 70 views
0

我正在編寫一個應用程序,我需要在數據庫中存儲大量數據並緩存該數據。當客戶端請求到來時,服務器需要從緩存中獲取數據並返回相同的數據。如何使用文件緩存服務器中的數據

這是怎麼做的: (離線處理) 1.我們有一個獲取json文件(大小約6MB)的spring批處理應用程序。 2.讀取每個對象並將其存儲在數據庫中。 3.大約17K記錄正在存儲在數據庫中。

(在線過程) 4.當請求到達服務器(web應用程序 - Spring web MVC)時,應用程序從數據庫獲取數據並返回響應。

我打算避免DB存儲在這裏。無論使用數據庫,我可以在文件服務器中添加文件,並在服務器啓動時緩存文件中的數據?

讓我知道是否有任何現有的方法。

回答

0

緩存不會取代持久性。您可以將數據存儲在文件系統中而不是數據庫中,但首先具有數據庫的要點是,數據庫中的數據存儲和檢索速度比正常文件系統中的快得多,因爲可以更好地構建數據和索引(以及容易查詢獲取數據的巨大優勢)。您可以隨時以大文件格式將數據轉儲到數據庫中(不推薦)

對於緩存,可以使用memcached或redis。請注意,緩存不是100%可靠的。您可以配置緩存以指定一個時間,在該時間之後應該清除緩存。您還需要在您創建/更新數據庫中的某些數據時不斷更新緩存數據。如果您的緩存已滿,通常最少使用的資源將首先從緩存中清除以容納新數據。

對於您來說,理想的解決方案是使用具有緩存層(如memcache)的可伸縮(讀取非關係)數據庫。在附註中,使用memcache與spring非常容易(我還沒有在應用程序中使用過redis)。自從您提到json數據格式以來,請參閱mongodb以瞭解持久性。

相關問題