假设我有一个嵌套属性可以更改的哈希.
"key1": {
"prop1": {
"subprop1": "could_change"
}
}
Run Code Online (Sandbox Code Playgroud)
如果我收到了prop1.subprop1已更改的信息,我可以在此属性上预先形成原子更新吗?现在node_redis保存prop1为一个字符串说'[object Object]'.如果我JSON.stringify()obj然后我需要检索对象,解析内存中的对象,进行编辑,然后进行字符串化并保存对象 - 不知道某些东西是否在平均时间内发生了变化.
如果我以不同的方式处理这些数据,有人可以解释一下吗?我有一个可能嵌套属性的对象,我需要能够更新部分,除了需要检索整个对象.
谢谢你的帮助!
小智 7
Lua脚本或锁定模式可以解决您的问题.
EVAL 'local obj = cjson.decode(redis.call("GET", "key1")); obj.prop1.subprop1 = ARGV[1]; redis.call("SET", "key1", cjson.encode(obj));' 0 "did_change"
Run Code Online (Sandbox Code Playgroud)
如果你愿意,甚至可以在Lua中创建更高级的东西来编辑任何键的JSON子对象.
查看Redis SETNX命令文档,了解如何使用锁定的示例.
| 归档时间: |
|
| 查看次数: |
1123 次 |
| 最近记录: |