2017-06-22 40 views
1

我有設置的redis存儲。我希望每個插入的值都是一個有序集合。在那個有序集合中,我希望這些值是散列值。這可能嗎?這是我的數據我想將作爲一個JSON表示:如何將redis中的數據結構設置爲另一個數據結構的值

{ 
    "siliconvalley": { 
     "search-list": [ 
      { 
       "id": "1234", 
       "content-type": "VIDEO" 
      }, 
      { 
       "id": "456", 
       "content-type": "SHOW" 
      } 

     ] 
    } 
} 

要做到在Redis的CLI快速測試,我試圖做到這一點:

//首先創建一個哈希鍵值

HSET searchResult id "123" 

//下一頁創建我的有序集合

ZADD siliconvalley 1 searchResult 

然而,看起來像只存儲一個字符串在我的設置爲「searchResult」,並沒有實際使用我創建的HSET

+0

您無法在** Redis **中進行此類操作,但如果您想要使用[ReJSON](https://redislabs.com/blog/redis-as-a-json-store/)會更好使JSON相關的操作。通過使用ReJSON,您可以在redis中創建JSON對象。 –

回答

0

Redis是一個普通的鍵值存儲,它不處理結構化數據。你不能在一個集合中存儲散列。你需要使用一個基於文檔的數據庫,例如mongo或couchdb。

你可以在Redis中做的事情是使用散列關鍵字siliconvalley:[searchIndexId]和排序集searchIndex,其中只包含ID作爲索引。

HSET searchResult:123 id "123" 
HSET searchResult:123 content-type "VIDEO" 
ZADD searchIndex 123 

HSET searchResult:456 id "456" 
HSET searchResult:456 content-type "SHOW" 
ZADD searchIndex 456 

現在你可以從searchIndex獲取ID並使用該ID來獲取相應的散列值。