由於PHP語言不支持多線程,因此Swoole使用多進程模式。在多進程模式下存在進程內存隔離,在工作進程內修改global全局變量和超全局變量時,在其他進程是無效的。
進程隔離
$fds 雖然是全局變量,但只在當前的進程內有效。Swoole服務器底層會創建多個Worker進程,在var_dump($fds)打印出來的值,只有部分連接的fd。
對應的解決方案就是使用外部存儲服務:
普通的數據庫和磁盤文件操作,存在較多IO等待時間。因此推薦使用:
以上是文章全部內容,有需要學習交流的友人請加入交流群的咱們一起,有問題一起交流,一起進步!前提是你是學技術的。感謝閱讀!