PHP 中的幾種進程間共享內存使用方式
1. 最常見的 APC
可以緩存 PHP 的 opcode 提高應用的性能
可以在同個 PHP-FPM 進程池的進程間共享數據
常用功能:
apc_store apc_fetch
apc_add apc_delete
apc_inc apc_dec
apc_cas
apc_clear_cache
apc_sma_info
2. Shmop Unix 系統共享內存使用接口
常用功能:
shmop_open shmop_close
shmop_read shmop_write
shmop_delete
ipcs -m 查看本機共享內存的狀態和統計
ipcrm -m shmid 或 ipcrm -M shmkey 清除共享內存中的數據
3. SystemV Shm
常用功能:
ftok
shm_attach shm_detach
shm_put_var shm_get_var shm_remove_var
4. 使用共享內存需要考慮操作的原子性和鎖、并行和互斥
sem 信號量相關函數:
sem_get sem_remove
sem_acquire sem_release (保證原子性)
其他常見鎖機制:文件鎖機制 flock
5. PHP 提供的 IPC 機制
–enable-shmop 共享內存,只能按字節操作
–enable-sysvsem 信號量
–enable-sysvshm 共享內存,和 shmop 的差別是提供的操作函數不同,支持 key、value操作
–enable-sysvmsg 消息隊列
參考:
http://php.net/manual/zh/book.apc.php
http://docstore.mik.ua/orelly/webprog/pcook/ch05_07.htm
http://www.re-cycledair.com/php-dark-arts-shared-memory-segments-ipc
來自:http://blog.eood.cn/php_share_memory
來自:http://blog.eood.cn/php_share_memory
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!