2013-11-20 50 views
0

我正在使用redis進行緩存。我已經在數據庫上啓動了一個存儲過程並將結果轉換爲數據表。現在我必須將這個數據表存儲在redis緩存中。讓我知道最好的辦法。如何使用redis存儲數據表中的密鑰

+0

告訴我們更多關於數據的性質。它有多大?它是如何構成的? – Larsenal

回答

0

Redis提供更強大的數據類型來存儲數據。

您需要查看哈希,集合,列表,簡單鍵和有序集以準確找出適合您需求的數據類型。

您應該知道如何使用這些存儲的數據,然後選擇適合/滿足您需求的最佳數據結構。

這裏的是以下格式

Id name status 
1 XYZ A 
2 ABC I 

對Redis的數據類型的一個小前奏 A fifteen minute introduction to Redis data types

0

至於你提到你的問題的數據表,我假設你有數據如果這種格式有數據。我會把它寫成哈希。所以1個紀錄= 1個散列

HMSET datatable:1 name XYZ status A 
HMSET datatable:2 name ABC status I 

我將保持哈希鍵在另一組

SADD datatable:keys 1 
SADD datatable:keys 2 

然後你就可以使用

SMEMBERS datatable:keys 

之後得到的所有哈希鍵你可以獲得所有的哈希值。確保你使用REDIS管道。如果您使用的是redis 2.8,則不需要使用SMEMBERS,並在應用程序級別處理它。您可以直接使用sort命令

SORT datatable:keys BY nosort GET datatable:*->name GET datatable:*->status 

這會給你的名字和狀態的數據表:1和DataTable:2

+0

其實我正在做的是我將數據提取爲數據表,然後將每條記錄轉換爲(key,val)對的集合,然後將每個集合添加到一個主鍵中。最終,主鍵集將具有其值一個集合。 – Pritam

+0

雅婭這將工作,但不是一個優雅的方式。如果你不把記錄作爲散列,你將失去對數據的控制。就像你不能只拿到幾個字段。記住SETS是隨機的,所以如果你有操作喜歡獲取前10條記錄。每次你將獲取新的記錄,你將得到不同的記錄。 –