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脚本时,它将阻止其他所有操作的运行,直到它完成为止。这样,您就可以保证不会因您提到的原因而丢失数据。请解释您的问题。是否要附加到哈希的名称?散列中的一个键?价值观之一?举个例子。很抱歉不清楚,我更新了问题。