Es gibt ein paar Möglichkeiten:
-
Hier ist ein Pseudo-Code, um dies mit Redis 2.6 Lua-Skripting zu tun.
for userid in users: EVAL 'local obj = cjson.decode(redis.call("GET", KEY[1])); obj.subobj.newjsonkey = ARGV[1]; redis.call("SET", KEY[1], cjson.encode(obj));' 1 userid "new value!"
-
Darüber hinaus müssen Sie möglicherweise den Dienst stoppen und dies mit GETs und SETs tun, da Sie wahrscheinlich keinen Sperrmechanismus eingerichtet haben. Wenn Sie eine Sperre erzwingen können, siehe http://redis.io/commands/setnx
-
Es gibt ein paar Tools zum Aktualisieren einer RDB. https://github.com/sripathikrishnan/redis-rdb-tools https://github.com/nrk/redis-rdb
Beachten Sie, dass diese Antwort an meine Antwort angepasst wurde:Arbeiten mit verschachtelten Objekten in Redis?