php进程中数组占用5Gb内存,随着不断循环计算数据在不断的变化。 其他进程,如何去读取这个数组里面的数据?通过redis、GlobalData等都不行,因为要保存到redis、GlobalData需要先把数组序列化,然后保存。然后读取的又需要反序列化,非常耗时间 有没有什么办法?求各位大佬指点迷津
进程间实时同步5G的数据最好是增量同步,既同步只同步改变的部分,不改变的部分不用同步,这样可以大大加快同步速度。但是这样对于开发者要求较高,并且容易出现数据不一致。 最好的方法就是只用一个进程装这5G数据,需要这5G数据的时候向这个进程发起请求获得所需数据。另外redis也有丰富的数据结构比如hash 都可以做到只同步某个key的数据,而不用把所有数据获取出来再存进去。
受教了。试了一下,发现问题是redis并发太慢了,数据有2千万条,而redis每秒并发才10万级别,保存数据来不及。
子进程可以共享父进程的数据。 workerman能做到动态创建子进程吗?收到客户端发来的消息就创建一个子进程,执行完就退出
不支持动态创建子进程。一个消息创建一个子进程开销非常大
@1:感谢解答!
共享内存可以
进程间实时同步5G的数据最好是增量同步,既同步只同步改变的部分,不改变的部分不用同步,这样可以大大加快同步速度。但是这样对于开发者要求较高,并且容易出现数据不一致。
最好的方法就是只用一个进程装这5G数据,需要这5G数据的时候向这个进程发起请求获得所需数据。另外redis也有丰富的数据结构比如hash 都可以做到只同步某个key的数据,而不用把所有数据获取出来再存进去。
受教了。试了一下,发现问题是redis并发太慢了,数据有2千万条,而redis每秒并发才10万级别,保存数据来不及。
子进程可以共享父进程的数据。 workerman能做到动态创建子进程吗?收到客户端发来的消息就创建一个子进程,执行完就退出
不支持动态创建子进程。一个消息创建一个子进程开销非常大
@1:感谢解答!
共享内存可以