如何在 NodeJS 游戏服务器中使用 Pub/Sub 防止在用户修改和广播期间覆盖 Redis GameStatus

问题描述 投票:0回答:0

我正在尝试使用 NodeJS 和 Redis 创建游戏服务器。我在 Redis 中使用一个 GameStatus 来使用 Pub/Sub 向相应的客户端执行广播。

问题是当每个用户修改 GameStatus 并使用 Pub/Sub 接收广播时,我无法保证完整性。比如User 1在0.1秒读取GameStatus并修改,同时User 2在0.2秒读取GameStatus

0.3秒,User 1将修改后的GameStatus信息存储到Redis中,但直到此时,User 2继续修改GameStatus。 0.4秒,User 2保存GameStatus时,User 1修改的信息被覆盖

有没有办法防止这种覆盖?

node.js caching redis socket.io publish-subscribe
© www.soinside.com 2019 - 2024. All rights reserved.