Redis is able to append key
值的字符串。我需要 append 到 Hashfield
的值,而不是普通键。我目前正在以明显的方式解决它:
redis.HGET('hash', 'field2append', function(err, reply){
redis.HSET('hash', 'field2append', reply + appendString);
});
由于设置涉及多个物理 (node.js) 服务器中的集群,上述情况可能会导致数据丢失,因为 Node 接收值和再次设置值之间所花费的时间(如果另一台服务器正在更新相同的字段)同时)。
是否有更安全的方法将字符串 append
到hashfield
的value
?
最佳答案
是的。您可以通过 transactions 执行此操作(如在管道中),或通过 Lua script在服务器端运行所有逻辑。因为 Redis 是单线程的,所以当您运行事务或 lua 脚本时,它会阻止其他一切运行,直到它完成。这样,您就可以保证不会因为您提到的原因而发生数据丢失。
关于node.js - 将值 append 到 Hashfield,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776231/