いくつかの可能性があります:
-
これをRedis2.6Luaスクリプトで行うための擬似コードを次に示します。
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!"
-
それが足りない場合は、おそらくロックメカニズムが設定されていないため、サービスを停止し、GETおよびSETを使用してこれを行う必要があります。ロックを適用できる場合は、http://redis.io/commands/setnx
を参照してください。 -
rdbを更新するためのツールがいくつかあります。 https://github.com/sripathikrishnan/redis-rdb-tools https://github.com/nrk/redis-rdb
この回答は、次の私の回答に適合していることに注意してください:Redisでネストされたオブジェクトを操作しますか?