0

現在、id と値を json として表すキーを持つ redis データセットを持っています。すべてのユーザー ID (キー) の json に新しいエンティティを追加する必要があります。既存のオープンソース ツールはありますか? 1M キーのデータを更新する方法を教えてください。

4

1 に答える 1

2

いくつかの可能性があります:

  1. 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!"
    
  2. それ以外では、サービスを停止し、GET と SET を使用してこれを行う必要がある場合があります。これは、おそらくロック メカニズムが整っていないためです。ロックを強制できる場合は、http://redis.io/commands/setnxを参照してください。

  3. rdb を更新するためのツールがいくつかあります。https://github.com/sripathikrishnan/redis-rdb-tools https://github.com/nrk/redis-rdb

注、この回答は、Redis でネストされたオブジェクトを操作しますか?に対する私の回答に適合しています。

于 2012-05-23T22:05:53.727 に答える