我目前有一个 redis 数据集,其中键表示 ids 和值作为 json 。我需要在 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
请注意,此答案适用于我对以下内容的回答:Working with nested objects in Redis?
于 2012-05-23T22:05:53.727 回答