Node.js 将值附加到Hashfield

Node.js 将值附加到Hashfield,node.js,hash,redis,append,Node.js,Hash,Redis,Append,将字符串还原为键的值。我需要附加到Hashfield的值,而不是普通键。我目前正在以显而易见的方式解决这个问题: redis.HGET('hash', 'field2append', function(err, reply){ redis.HSET('hash', 'field2append', reply + appendString); }); 由于设置涉及多个物理(node.js)服务器中的集群,上述情况可能会导致数据丢失,因为节点接收值和再次设置值之间需要花费时间(如果另一台服

将字符串还原为
键的值。我需要附加到
Hashfield
的值,而不是普通键。我目前正在以显而易见的方式解决这个问题:

redis.HGET('hash', 'field2append', function(err, reply){
    redis.HSET('hash', 'field2append', reply + appendString);
});
由于设置涉及多个物理(node.js)服务器中的集群,上述情况可能会导致数据丢失,因为节点接收值和再次设置值之间需要花费时间(如果另一台服务器同时更新同一字段)

是否有更安全的方法将字符串附加到
hashfield

有可能不冒比赛条件的风险吗

Redis是单线程的

我需要(原子地)附加到Hashfield(字符串)


hashfield的键?您尝试过什么?

Redis是一个单线程进程。不存在竞争条件问题。

是。您可以通过(在管道中)或通过在服务器端运行all逻辑来实现这一点。因为Redis是单线程的,所以当您运行事务或lua脚本时,它将阻止其他所有操作的运行,直到它完成为止。这样,您就可以保证不会因您提到的原因而丢失数据。

请解释您的问题。是否要附加到哈希的名称?散列中的一个键?价值观之一?举个例子。很抱歉不清楚,我更新了问题。