gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:42:05 27 4
gpt4 key购买 nike

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

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

问题:

  1. 是否可以在内存缓存中保留 php session ?
  2. 使用粘性 session 优于内存缓存吗?
  3. memcache 中的 php session 有什么问题 - 注意:我可以获得足够的缓存(亚马逊所以它可扩展)。

最佳答案

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

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

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

值得庆幸的是,PHP 和 Apache 有一个简单的实现来处理与 Memcached 的 session 。只需使用一些 shell 命令即可安装

Debian 示例:

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

将您的 php.ini 设置更改为类似于:

(取自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:

3: 使用 Memcached 的根本缺点是数据易变

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

然后你有内存消耗......

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

关于php - 是否建议将 PHP Session 存储在 MemCache 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13946033/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com