如何将redis中的数据结构设置为另一个数据结构的值

时间:2017-06-22 21:25:27

标签: redis

我有一个我正在设置的redis商店。我希望每个插入的值都是一个有序集。在该排序集中,我希望值为哈希值。这可能吗?这是我想要作为json表示的数据:

{
    "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

1 个答案:

答案 0 :(得分:0)

Redis是一个普通的键值存储,它不处理结构化数据。您不能在集合中存储哈希。您需要使用基于文档的数据库,例如mongo或couchdb。

你在Redis中可以做的是使用密钥为siliconvalley:[searchIndexId]的散列和仅包含id作为索引的有序集searchIndex

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来获取相应哈希的值。