2016-03-11 89 views
-3

我在設計後端服務器時有問題。
我設計了一個用於爲移動應用程序客戶端提供數據的restful API。客戶可能超過10000,數據變化率並不高。因此,我希望有一個List(集合)來存儲用於在Web服務器中提供客戶端的整個數據,並設計一個調度程序來通過每1小時訪問一次數據庫來更新此列表。這樣,每次客戶端向服務器發送請求時,服務器都不需要訪問數據庫。我認爲它更有效率。
我有一些問題:
1.這是防止訪問數據庫過於頻繁的好方法嗎?
2.當客戶端發送請求並且列表正在從數據庫更新時,會發生什麼情況?客戶端獲取舊數據還是會出現錯誤(異常)?

謝謝!一個後端Restful API設計考慮

回答

0
  1. 而不是每小時緩存整個數據庫一次,您可以簡單地緩存單個記錄或查詢。這樣,您不必將整個數據集存儲在內存中,這可能會很昂貴。

  2. 這取決於你如何實現緩存,但你的客戶端可能會收到陳舊的數據。

+0

此外,只要不是錯誤或異常,在我的應用程序中收到陳舊的數據就可以了。另外,在我的情況下,是的,我只緩存一個表的一部分而不是整個數據庫的那些10000個客戶端,因爲這些客戶端以固定的速率發送請求,比如說每20分鐘發送一次。但只有部分客戶需要獲取數據,取決於他們的數據是否在內部發生了變化。所以,我只緩存更新的數據,這是一個好主意嗎?我檢查了一些緩存機制,比如Spring Cache,這不適合我的情況。 – csuusc

+0

我可能有一個簡單的解決方案。也許,每次更新時只需爲此List創建一個新實例,然後替換爲舊的實例。通過這種方式,客戶最多隻能得到陳舊的數據,但絕對不會出現錯誤或異常情況。你怎麼想? – csuusc