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 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
转载本站原创文章,请注明出处,并保留原始链接、图片水印。
本站是一个以用户分享为主的开源技术平台,欢迎各类分享!