是否建议将 PHP Session 存储在 MemCache 中?

2023-12-23

我正在使用负载均衡器后面的几个 Web 服务器,并且我可以启用粘性会话来将用户保留到一个特定的 Web 服务器 - 这将起作用。

我一直在阅读有关 PHP Sessions & MemCache 的内容。我必须说我读到的内容有点令人困惑,因为有些页面说这是一个好主意,而另一些则相反。

问题:

  1. 是否可以将 php 会话保留在 memcache 中?
  2. 使用粘性会话比使用内存缓存更好吗?
  3. memcache 中的 php 会话有什么问题 - 注意:我可以获得足够的缓存(亚马逊,因此它是可扩展的)。

1:是的。我强烈建议将 PHP 会话存储在 Memcached 中。原因如下:

Memcached 非常适合存储数据库和文件系统经常访问的小块数据。

Memcached 专为会话而设计。它最初是 livejournal.com 首席开发人员的创意,后来也用于缓存用户帖子的内容。好处是立竿见影的:大部分动作都发生在记忆中。页面加载时间大大缩短。

值得庆幸的是,PHP 和 Apache 可以轻松实现使用 Memcached 处理会话。只需使用几个 shell 命令即可安装

以 Debian 为例:

sudo apt-get -t stable install php7.4-memcached

and

将 php.ini 设置更改为类似以下内容:

(取自https://www.php.net/manual/en/memcached.sessions.php https://www.php.net/manual/en/memcached.sessions.php)

 session.save_handler = memcached
 ; change server:port to fit your needs...
 session.save_path = "localhost:11211"

关键是session.save_path

它将不再指向服务器上的相对文件路径。 提到了 APC - APC 用于缓存程序使用的 .php 文件。 APC 和 Memcached 将显着减少 IO,并让 Apache/Nginx 更快地释放服务器资源(例如图像)。

2: No

3: 使用 Memcached 的根本缺点是数据波动性

会话数据在 Memcached 中并不持久。因此,如果服务器崩溃,内存中的所有数据都会丢失。每个人都必须重新登录。

然后你就会消耗内存......

请记住:会话存储在内存中。如果您的网站处理大量并发用户,您可能需要花费一些额外的钱来分配更大的内存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否建议将 PHP Session 存储在 MemCache 中? 的相关文章

随机推荐