场景:当请求到来时,我需要连接到 Redis 实例,打开连接,获取计数,更新计数并关闭连接(对于每个请求,这就是流程)。当请求按顺序出现时,即 1用户一个接一个地发送 100 个请求,然后 Redis 中的计数为 100。
问题:问题是并发请求何时到来。即 10 个用户同时发送 100 个请求(每个用户 10 个请求),那么计数不是 100,而是大约 50。
示例:假设 Redis 中的 count 为 0。如果同时有 10 个请求,则将打开 10 个连接,所有 10 个连接将获取 count 值为 0 并将其更新为 1。
分析:我发现,随着请求同时到来,多个连接正在获取相同的计数值并更新它,因为计数值被覆盖。如果您已经遇到此问题,任何人都可以建议避免此问题的最佳方法。
这里我们使用 Hapijs、Redis 3.0、ioredis