Недавно я попробовал реализовать memcached для сохранения сеанса в php. Я изменил session.save_handler в моем php.ini и по большей части работает правильно. Сессии сохраняются в нем. Однако время от времени я получаю это странное сообщение для определенных сеансов:
PHP Предупреждение: Неизвестно: Не удалось записать данные сеанса (memcached). Убедитесь, что текущая настройка session.save_path верна (xxxx: 11211) в Unknown в строке 0.
Данные сеанса одинаковы, путь под защитой 1 МБ memcached, и мне еще предстоит увидеть шаблон во вступлении этого сообщения … может быть, пару раз в минуту. Веб-сайт обычно находится под средней загрузкой, 150 пользователей одновременно.
Если вы используете memcache, тогда save_path
должен иметь префикс tcp://
.
Если вы используете memcached, то save_path
не должен иметь префикс tcp://
.
Ответ: объекты Memcached могут быть не более 1 МБ (по умолчанию)
если ваш массив или объект превысит этот предел, объект будет удален магическим образом 🙂
Все предметы на вашем сеансе будут удалены, просто сказав это, потому что прямо сейчас в этот момент я испытал это сам
Я решил это, запустив сервер сеанса Memcached, как это
memcached -I 10m
Я считаю, что это связано с использованием расширения memcached, и оно не инициализируется перед сеансами. Я переключился на использование расширения memcache, а не расширения memcached, и он работает.
session.save_handler = memcache session.save_path="tcp://192.168.1.103:11211"
У меня была аналогичная проблема с symfony2 и memcached на стеке, создающем докер.
Ошибка указала:
Предупреждение: Не удалось записать данные сеанса (пользователь). Убедитесь, что текущая настройка session.save_path верна
И проблема в том, что у меня был устаревший ./app/config/parameters.yml
Проверьте свой memchached настройки в соответствии с вашими потребностями, например:
parameters: session_memcached.host: '%session_memcached_host%' session_memcached.port: '%session_memcached_port%' session_memcached.prefix: '%session_memcached_prefix%' session_memcached.expire: '%session_memcached_expire%'