gpt4 book ai didi

php - 在高负载下与 PHP+Redis 的并发连接

转载 作者:可可西里 更新时间:2023-11-01 11:21:34 26 4
gpt4 key购买 nike

是否有某种机制可以在高并发情况下处理数据?

首先我们使用了 mongodb,它具有解决问题的原子更新。但是将总收入更新到大约 1000 秒,我们设置 Redis 来帮助 mongo 和它们之间的写入同步。它运行良好,但我们与 redis 有一致性问题。

例如:

  1. 第一个请求在 0.01 毫秒后到达 - 进程在 0.04 毫秒后退出
  2. 第二个请求在 0.02 毫秒到达并在 0.03 秒退出。

两个请求得到相同的对象?更改它的数据并在退出时保存它。

当我们使用 mongodb 时 - 我们可以对对象进行部分更新,但使用 redis - 我们不能。

是否可以同时操作来自多个进程的相同对象(数据)而不是整个覆盖它 - 只是部分?

我找到的唯一方法 - 创建锁定机制并在它存在时等待进程,然后再第二次获取它。

最佳答案

Redis还没有你想要的机制(部分更新),但作为替代方案,您可以编写 Lua 脚本来避免并发问题。

在脚本中,您可以先读取一个值,根据需要对其进行操作,最后再次存储该值。Redis 确保脚本将以原子方式执行,这样您就不需要任何锁定机制。 (*)

关于php - 在高负载下与 PHP+Redis 的并发连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28156100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com