不同的worker进程 能共用一个超全局的变量对像存取数据么?

weoweo520

在业务逻辑进程里经常需要存取数据 ,而且业务逻辑都是在event.php 这个进程里

由于会有多个进程,导致直接用变量 根本没有办法数据唯一性。

现在都是用redis 来做的,多个进程 和redis 进行读取 。redis 需要不断序列化 反序列化 存储 读取 。
我想用一个超全局的内存对像 来代替redis 应该怎么做呢?

能不能在开始启动的 start.php 里建一个 static 变量,公开出来 给每个worker 进程使用呢?

实际上就是多个进程共用内存的方案。。

4050 1 0
1个回答

walkor

序列化和反序列化是必须的,即使你用共享内存,也少不了序列化。
redis单机性能已经很好,另外redis也可以分布式,没必要在序列化上花费时间优化。

workerman提供了一个全局变量组件,可以多个进程或者多服务器共享变量,实际上原理还是将数据序列化存储到一个公共的地方。
http://doc3.workerman.net/component/global-data.html

  • 暂无评论
年代过于久远,无法发表回答
🔝