首页 > 解决方案 > Laravel 多服务器 memcached 会话

问题描述

我想让 Laravel 使用配置文件中列出的所有 memcached 服务器来存储会话,因为它现在只能使用一台服务器。

此外,每个会话都必须设置到所有服务器并获取,即使其中一台服务器关闭。

我知道会话系统包装了缓存系统,但我仍然不知道从哪里开始。

标签: laravelsessionmemcached

解决方案


假设您正在使用php-memcached客户端,则无法执行此操作。当您使用多个服务器配置此客户端时,它会散列密钥以确定将值(在您的情况下为会话)发送到哪个服务器。有一些客户端允许通过将值发送到多个服务器来进行复制,但这不是一个常见的功能。

如果您使用长寿命会话或希望确保它们不会被删除,则不应使用 memcached(与此相关的任何缓存)来存储会话。即使您可以使用多个服务器,当缓存已满时,会话也可能被 LRU 算法驱逐。在这种情况下,请使用永久存储,例如文件或数据库。


推荐阅读