2

我有一个 PHP 系统,如果需要,我想将其移植到多个服务器上。目前我只是以 PHP 的默认方式存储用户的当前会话信息(假设在内存中)。我可以获得一个我需要在我的 MySQL 数据库中的表中放入什么的示例以及一些实现示例吗?

4

1 回答 1

1

默认会话存储系统实际上是在文件系统上。一些系统缓存可用于从内存中提取它。

现在,为了进入多服务器设置,您的服务器基本上不需要相互共享任何内容。为此,会话需要存储在创建和访问它们的服务器之外。

在数据库中存储会话是一种选择,但它会增加数据库的负载,并且在某些情况下您必须小心锁定。默认会话处理具有锁定,它一次只允许一个线程访问给定会话,数据库处理程序可能不会这样做。如果您只是读取会话数据,这可能不会成为问题,但如果您正在更改它,则可能会出现问题。

memcached 扩展允许会话数据复制到 memcached 节点。我更喜欢这条路线,因为它允许您将会话保留在内存中并避免增加额外的数据库负载(这通常更难以扩展)

于 2013-01-21T02:13:40.817 回答