2013-06-21 84 views
1

我在數據庫中存儲可通過webservice訪問的鍵值對。該請求包含國家,地區,終端和web服務返回映射到這些值的值。 數據庫可能包含其映射於全國紀錄,有其映射到區等,例如記錄:緩存在不同的記錄級別

Id Country District Key Value 
1 DE  D1  K1 Dummy1 
2 DE    K1 Dummy2 
3 DE  D2  K1 Dummy3 

所以,如果輸入的是DE,D1,K1,然後dummy1必須歸還,如果輸入是DE,D3,則Dummy2必須返回,因爲我們沒有區域特定的值。

我創建了一個存儲過程,它返回列表中輸入最正確的記錄。它的問題,我不能真正使用cahcing。

最記錄被分配到唯一的國家,但也有地區例外,所以我想緩存列表,但關鍵是總是不同的,所以

DE,D3 DE,D4 等將返回相同的列表,但緩存將包含兩次這兩個輸入記錄...

另一種選擇是隻讀國家特定的記錄,然後區特定的記錄,併合並兩個列表...

你有任何其他的想法如何使cachin possible le 謝謝

回答

1

根據我對緩存的經驗,將輸入參數用作鍵/值緩存系統中的緩存鍵是很常見的做法。

所以即使DE,D3和DE,D4可能會返回相同的對象,應該沒問題。有了緩存系統,我不會害怕多次存儲同一個對象。誰知道,未來投入可能會在未來返回不同的價值。

我只是使用輸入來製作一個密鑰並緩存存儲過程輸出。如果您關心空間,您可以獲得像Memcached或Redis這樣的分佈式緩存,這將使存儲大量數據非常容易。

+0

我想避免存儲兩次或更多的同一個對象,因爲它們會變得更大 – HamoriZ

相關問題