在Redis中使用嵌套对象?

说我有一个嵌套的属性可以改变的散列。

"key1": { "prop1": { "subprop1": "could_change" } } 

如果我发送了prop1.subprop1已经改变的信息,我可以预制这个属性的primefaces更新? 现在, node_redisprop1保存为一个表示'[object Object]'的string。 如果我JSON.stringify()obj然后我需要检索对象,parsing对象在内存中,进行编辑,然后stringify和保存对象 – 不知道是否有什么改变的同时。

如果我应该以不同的方式处理这些数据,有人可以解释一下吗? 我有一个可能嵌套属性的对象,我需要能够更新部分,除了需要检索作为一个整体的对象。

谢谢你的帮助!

Lua脚本或locking模式将解决您的问题。

 EVAL 'local obj = cjson.decode(redis.call("GET", "key1")); obj.prop1.subprop1 = ARGV[1]; redis.call("SET", "key1", cjson.encode(obj));' 0 "did_change" 

如果你愿意,你甚至可以在Lua中做更高级的编辑任何键的JSON子对象。

查看Redis SETNX命令文档 ,了解如何使用locking的示例。