Подтвердить что ты не робот

Не удалось записать данные сеанса, php и memcached

Недавно я попробовал реализовать memcached для сохранения сеанса в php. Я изменил session.save_handler в моем php.ini и по большей части работает правильно. Сессии сохраняются в нем. Однако время от времени я получаю это странное сообщение для определенных сеансов:

PHP Предупреждение: Неизвестно: Не удалось записать данные сеанса (memcached). Убедитесь, что текущая настройка session.save_path верна (x.x.x.x: 11211) в Unknown в строке 0.

Данные сеанса те же, что и в случае 1MB-барьера memcached, и мне еще предстоит увидеть шаблон во вхождениях этого сообщения... может быть, пару раз в минуту. Веб-сайт обычно находится под средней загрузкой, 150 пользователей одновременно.

4b9b3361

Ответ 1

Если вы используете memcache, то save_path должен иметь префикс tcp://.

Если вы используете memcached, то save_path не должен иметь префикс tcp://.

Ответ 2

Ответ: объекты Memcached могут быть не более 1 МБ (по умолчанию)

если ваш массив или объект превышает этот предел, объект будет удален магическим образом:)

Все элементы на вашем сеансе будут удалены, просто сказав это, потому что прямо сейчас в этот момент я испытал это сам.

Я решил это, запустив сервер сеанса Memcached, как этот

memcached -I 10m

Ответ 3

Я считаю, что это связано с использованием расширения memcached и не инициализации перед сеансами. Я переключился на использование расширения memcache, а не на расширение memcached, и он работает.

session.save_handler = memcache
session.save_path="tcp://192.168.1.103:11211"

Ответ 4

У меня была аналогичная проблема с 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%'