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

我正在考虑使用文件或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

问题是使用MySQL内存表需要查询。 Memcache不包含在标准的PHP安装中。要在Windows上具有shm_ *功能,需要使用选项“--enable-sysvsem”从源代码构建PHP,这需要在php.ini中进行设置,以使开发人员可能无法始终访问。

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

最佳答案

如果要在不同进程之间共享对象(类的实例),则无论使用哪种存储层(数据库,内存,文件等),都将始终绑定(bind)到serializeunserialize

如果您不想使用serializeunserialize,那么您将无能为力。

10-06 07:35
查看更多