无法写入会话数据,php 和 memcached

2022-08-31 01:01:10

我最近尝试在php中实现memcached以保存会话。我在php中修改了session.save_handler.ini在大多数情况下它都能正常工作。会话保存在其中。但是,偶尔,在某些会话中,我会收到以下奇怪的消息:

PHP 警告:未知:无法写入会话数据(内存缓存)。请验证 session.save_path 的当前设置是否正确 (x.x.x.x:11211) 在第 0 行的“未知”中。

会话数据是相同的,在memcached的1MB障碍下,我还没有看到此消息发生的模式......也许每分钟几次。该网站通常处于中等负载状态,同时有150个用户。


答案 1

如果您使用的是memcache,则必须具有前缀。save_pathtcp://

如果您使用的是 memcached,则 不应有前缀。save_pathtcp://


答案 2

答案是 Memcached 对象最大可以为 1MB(默认值)

如果您的数组或对象超过此限制,则该对象将被神奇地删除:)

您的会话中的所有项目都将被删除,只是说出来,因为现在此时此刻我已经亲身体验过了

我通过像这样启动Memcached会话服务器来解决它

memcached -I 10m

推荐