javascript - 我应该如何将此对象存储在 Redis 中?

标签 javascript json node.js redis

parent = {
    child0: {
        data1:'foo',
        data2: 'bar'
    },
    child1: {
        data1:'foo',
        data2: 'bar'
    },
    child2: {
        data1:'foo',
        data2: 'bar'   
    }
}

起初我想我会设置一个 parent:child 键,因为我需要它的 sibling 的单独数据。但在某些情况下,我需要返回父级中的所有数据。

我是否应该将整个对象放在 parent 键中?

如果很多 gets 和 sets 可能只针对它的一个 child ,这是否有缺点?

有没有办法用 parent:child 模式调用所有父数据?

谢谢!

最佳答案

尝试哈希 - 它让您 HGET 只得到一个 child ,而 HGETALL 得到所有 child 。

不过,将整个对象作为 JSON 存储在单个键中也是有效的,如果您的用法合适,则可以保持代码简单。如果数字不是太大,即使您只需要显示一个子对象,也总是检索​​整个对象可能是有意义的。

避免将复杂对象存储在单个键中的主要原因是写冲突——如果两个连接可以同时修改一个对象的不同子对象,那么哈希就会少很多麻烦。

关于javascript - 我应该如何将此对象存储在 Redis 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7423777/

相关文章:

node.js - 在node.js中使用socket.io管理 session 并且不使用cookie

javascript - 如何创建不带 "new"关键字的类的实例

javascript - 验证 Bootstrap 4 表单的两个复选框

javascript - 多词预测/自动完成文本区域?

javascript - Node.js/JavaScript 内置类型的 stub ?

php - 我在将 PHP 中的数组转为 JSON 结构用于 Javascript 时遇到问题

android - base64 解码字符串并编码所有丢失的特殊字符

c++ - 如何在C++中将字符串集合存储为键并将json存储为值

node.js - Windows-Build-Tools无法下载python

javascript - 即使鼠标移开后,悬停下拉菜单仍保持事件状态