PDA

View Full Version : Php 中的几种进程间共享内存使用方式


Agate Beach
2016-05-29, 10:31 PM
1. 最常见的 APC

PHP 中的几种进程间共享内存使用方式

可以缓存 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 消息队列