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中设置开发人员可能无法一直访问的位置.
以上哪一个更好?还有其他选择吗?
如果您想在不同进程之间共享对象(类的实例),那么无论您使用哪种类型的存储层(数据库、memchace、文件……),您都将始终受到serialize限制。unserialize
如果您不想使用serializeand unserialize,那么您无能为力。