多进程如何共享大型数组?

php进程中数组占用5Gb内存,随着不断循环计算数据在不断的变化。
 
其他进程,如何去读取这个数组里面的数据?通过redis、GlobalData等都不行,因为要保存到redis、GlobalData需要先把数组序列化,然后保存。然后读取的又需要反序列化,非常耗时间
 
有没有什么办法?求各位大佬指点迷津
1. 没有办法共享这个数组的内存地址给其他进程?
2. 有没有其他不比php数组性能差的数据结构 ?
已邀请:

walkor

赞同来自: dingfei

进程间实时同步5G的数据最好是增量同步,既同步只同步改变的部分,不改变的部分不用同步,这样可以大大加快同步速度。但是这样对于开发者要求较高,并且容易出现数据不一致。
 
最好的方法就是只用一个进程装这5G数据,需要这5G数据的时候向这个进程发起请求获得所需数据。另外redis也有丰富的数据结构比如hash 都可以做到只同步某个key的数据,而不用把所有数据获取出来再存进去。

dignfei - 丹妮

赞同来自:

共享内存可以

要回复问题请先登录注册