現在、id と値を json として表すキーを持つ redis データセットを持っています。すべてのユーザー ID (キー) の json に新しいエンティティを追加する必要があります。既存のオープンソース ツールはありますか? 1M キーのデータを更新する方法を教えてください。
質問する
5124 次
1 に答える
2
いくつかの可能性があります:
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!"
それ以外では、サービスを停止し、GET と SET を使用してこれを行う必要がある場合があります。これは、おそらくロック メカニズムが整っていないためです。ロックを強制できる場合は、http://redis.io/commands/setnxを参照してください。
rdb を更新するためのツールがいくつかあります。https://github.com/sripathikrishnan/redis-rdb-tools https://github.com/nrk/redis-rdb
注、この回答は、Redis でネストされたオブジェクトを操作しますか?に対する私の回答に適合しています。
于 2012-05-23T22:05:53.727 に答える