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 中并不持久。因此,如果服务器崩溃,内存中的所有数据都会丢失。每个人都必须重新登录。
然后你就会消耗内存......
请记住:会话存储在内存中。如果您的网站处理大量并发用户,您可能需要花费一些额外的钱来分配更大的内存。