将数据插入REDIS(node.js+;REDIS)

将数据插入REDIS(node.js+;REDIS),node.js,redis,node-redis,Node.js,Redis,Node Redis,如何插入(存储)类似这样的数据(node.js+redis): 对于g1或g2,我可以做增量,这有多大影响 注意:以这种方式插入时间戳时,redis cli将显示时间戳,而不是UNIX时间您正在寻找和的组合。根据: HMGET键字段[字段…] 返回与哈希中指定字段关联的值 储存在钥匙处 对于散列中不存在的每个字段,都需要一个nil值 返回。因为不存在的密钥被视为空哈希, 对不存在的密钥运行HMGET将返回一个nil列表 价值观 HMSET键字段值[字段值…] 将指定字段设置为散列中各自的值 储存

如何插入(存储)类似这样的数据(node.js+redis):

对于g1或g2,我可以做增量,这有多大影响


注意:以这种方式插入时间戳时,redis cli将显示时间戳,而不是UNIX时间

您正在寻找和的组合。根据:

HMGET键字段[字段…] 返回与哈希中指定字段关联的值 储存在钥匙处

对于散列中不存在的每个字段,都需要一个nil值 返回。因为不存在的密钥被视为空哈希, 对不存在的密钥运行HMGET将返回一个nil列表 价值观

HMSET键字段值[字段值…] 将指定字段设置为散列中各自的值 储存在钥匙处。此命令覆盖列表中的所有现有字段 搞砸若密钥不存在,则创建一个包含散列的新密钥

然后,您要做的是从has中检索您的值,对其执行任何看起来合适的操作,并保存上一个值

另一个可能更好的解决方案是使用。如果您坚持使用时间戳,则可以在不执行get操作的情况下增加字段:

HINCRBY键字段增量 将存储在密钥处的哈希中存储在字段中的数字增加 增量。若密钥不存在,则创建一个包含散列的新密钥。 如果字段不存在,则在执行操作之前将该值设置为0 表演

HINCRBY支持的值范围限制为64位有符号 整数

不过,你可能需要重新构造你的散列,除非有办法深入到你的g1/g2字段(stackoverflow社区,如果你有办法,请随意编辑这个答案或对它进行评论)。这样的结构应该可以工作:

{
    enabled : true,
    timestamp_g1 : 0,
    timestamp_g2 : 0
}

免责声明:我只涉猎过一点Redis;在不久的将来,我将更多地参与其中。那么我如何制作时间戳?g1到1377519643877?g1或g1?1377519643877?我想我不明白你的问题。该属性称为
timestamp_g1
,该属性的值为整数。为什么需要在时间戳上添加前缀或后缀?我重新思考了一下,找到了另一个解决方案:):room.g1.timestamp,count和room.g2.timestamp,count很高兴听到你想出了命名方案!如果我的回答与您的问题相关,请确保将其标记为已回答,并对任何有帮助的评论进行投票,以奖励我的努力,并让stackoverflow社区受益:)。如果您不介意增加存储空间,您还有其他存储选项。您可以将时间存储为字符串,甚至可以将时间存储在redis中。虽然我个人没有这么做,但它应该可以正常工作。我不知道哪个选项最适合您,但我个人会在需要时存储时间戳并转换为日期对象。
{
    enabled : true,
    timestamp_g1 : 0,
    timestamp_g2 : 0
}