2012-05-23 65 views
0

我目前有一個redis數據集,其中包含表示ID和鍵值的鍵作爲JSON。我需要在每個用戶id(鍵)的json中添加一個新實體。有沒有現有的開源工具?我應該如何繼續更新1M密鑰數據的方式是什麼?Redis值更新

回答

3

有幾個可能性:

  1. 這是一個有2.6的Redis 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-toolshttps://github.com/nrk/redis-rdb

注意,這個答案是適應我的回答:Working with nested objects in Redis?