Il existe plusieurs possibilités :
-
Voici un pseudo-code pour faire cela avec les scripts Redis 2.6 Lua.
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!"
-
En dehors de cela, vous devrez peut-être arrêter le service et le faire avec des GET et des SET, car vous n'avez probablement pas de mécanisme de verrouillage en place. Si vous pouvez appliquer un verrouillage, consultez http://redis.io/commands/setnx
-
Il existe quelques outils pour mettre à jour un rdb. https://github.com/sripathikrishnan/redis-rdb-tools https://github.com/nrk/redis-rdb
Remarque, cette réponse a été adaptée à ma réponse à :Travailler avec des objets imbriqués dans Redis ?