2017-06-22 37 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来获取相应的散列值。