Redis新手-如何在哈希中创建哈希?


12

我想在redis中创建这种类型的结构:(基本上是json数据)

{
    "id": "0001",
    "name":"widget ABC",
    "model": "model123",
    "service":"standard",
    "admin_password": 82616416,
    "r1":
        {
            "extid":"50000",
            "password":"test123",
        },
    "r2":
        {
            "ext":"30000",
            "password":"test123",
        },
}

到目前为止,我已经尝试过:

我试图创建没有“子”哈希的哈希,只是为了确保我掌握了基础知识。所以这是我从redis-cli开始的内容:

HMSET widget:1 id 0001 name 'widget ABC' model 'model123' service standard admin_password 82616416
HMSET widget:2 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234

这似乎有效。我可以看到在小部件集合中有2个小部件数据“记录”。

但是我尝试用r1数据创建记录失败。

这是我尝试的:

HMSET widget:3 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234 r1{extid 50000} 

这将创建哈希值“ 50000}”的哈希键“ r1 {extid””

任何建议,将不胜感激。我认为我的问题是我的行话。我只是对redis语法不够了解,无法知道在Google搜索中使用哪些单词。

也许我只需要像这样“拉平”数据:

HMSET widget:3 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234 r1_extid 50000 r1_password test123 r2_extid 30000 r2_password test123

谢谢。

Answers:


14

Redis不支持嵌套数据结构,特别是它不支持Hash中的Hash :)您基本上可以在两个选项之间进行选择:序列化内部Hash并将其存储在Hash字段中,或者使用另一个Hash键,只需在外部Hash的字段中保留对它的引用即可。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.