如何在PHP中的不同会话之间创建共享对象?

jon*_*ham 5 php mysql memory session shared

如何在PHP中的不同会话之间创建共享对象?

我正在考虑使用文件或MySQL内存表.使用文件不是一个好选择,因为它没有锁定并且速度很慢.使用MySQL内存表是一个不错的选择,但如何将类实例(对象)保存到表中?序列化对象并将其放到表中也很慢.

Option 1: MySQL memory table
Option 2: shm_attach,shm_detach,shm_get_var,shm_has_var,shm_put_var,..
Option 3: Memcache
Run Code Online (Sandbox Code Playgroud)

问题是使用MySQL内存表需要查询.Memcache不包含在标准PHP安装中.要在Windows上使用shm_*函数,需要使用选项"--enable-sysvsem"从源代码构建PHP,这需要在php.ini中设置开发人员可能无法一直访问的位置.

以上哪一个更好?还有其他选择吗?

hak*_*kre 1

如果您想在不同进程之间共享对象(类的实例),那么无论您使用哪种类型的存储层(数据库、memchace、文件……),您都将始终受到serialize限制。unserialize

如果您不想使用serializeand unserialize,那么您无能为力。