避免redis竞赛状况

我试图找出如何在更新redis时避免竞争状况。 这是我的场景:由于查询参数长度的限制,我有一个消息被分解成了多个http GET请求。 我使用redis来存储临时消息块,当我拥有所有的块时,我将它们连接起来并存储在数据库中。 块标有一个消息ID,我将这些块存储在一个'$'分隔的string中,由消息ID键入。 当我得到一个新的块时,我得到块string,然后追加新的块+'$',并将其设置回redis。 问题是我很担心,如果我打电话给set,并且set命令在我下一次获得之前没有完成执行,我将不会有最新的块string。 如果我有一个单一的Redis客户端,也许这将缓解这个问题,因为大概这些命令是按照服务器上接收到的顺序执行的? 任何洞察赞赏,包括build议如何构build消息重新组装的方式更为理智? 谢谢。

这里最简单的事情就是使用Redis的APPEND命令 – 这将节省您GET值的往返行程,并确保操作的primefaces性。