2

问题基本上说明了一切。我的流量很大,每天大约有 20 万次点击。我想将原始引荐来源网址(它们来自哪里)存储在会话变量中以用于各种目的。这是一个好主意还是我应该坚持使用数据库?

4

3 回答 3

2

你可以同时做这两个:)。PHP 允许您在脚本中定义会话的存储逻辑。这样,也可以将会话存储在数据库中。检查手册set_session_save_handler()

如果您使用负载平衡(或计划一次),使用数据库将有其优势。这样,所有 Web 服务器都可以从同一个数据库(或集群)读取会话数据,并且负载均衡器不必担心应该将哪个请求转发到哪个 Web 服务器。如果会话数据存储在文件中,这是默认机制,那么负载均衡器必须将会话的每个请求转发到同一物理 Web 服务器,这要复杂得多,因为负载均衡器必须在 HTTP 级别上工作。

于 2013-04-30T19:43:06.007 回答
1

如果您只需要用户当前会话的信息,您可以将信息存储在 cookie 中。然后,您根本不需要将其存储在您的最后。

也有一些不利的方面:

  1. 他们可能禁用了 cookie,因此您可能无法保存它。
  2. 如果您下次需要该信息,您可能无法获得它,因为它可能已被删除。
  3. 不是超级安全,所以不要保存密码、银行信息等。

因此,如果无论如何都需要此信息,也许它不是要走的路。如果信息是可选的,那么这将起作用。

于 2013-04-30T19:44:44.430 回答
0

默认的 PHP 会话处理程序是文件处理程序。因此,相关的问题是:

  1. 您是否使用超过 1 个没有粘性会话的网络服务器(负载平衡)?
  2. 你的磁盘空间用完了吗?
  3. 你有没有打算做这些?

如果是(对任何人),则将其存储在数据库中。或者,更好的是,计算每个请求的内容(或将其缓存在 Memcached 之类的地方)。您还可以将这些内容存储在签名的 cookie 中(以防止篡改)。

于 2013-04-30T19:42:38.420 回答