View Single Post
  #1   IP: 117.95.50.87
Old 2016-05-29, 10:31 PM
Agate Beach Agate Beach is offline
初级会员
 
Join Date: 2009-02-15
Posts: 1
Agate Beach 现在声名狼藉
Default Php 中的几种进程间共享内存使用方式

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 消息队列
Reply With Quote