Ответ 1
Если вы используете memcache, то save_path
должен иметь префикс tcp://
.
Если вы используете memcached, то save_path
не должен иметь префикс tcp://
.
Недавно я попробовал реализовать memcached для сохранения сеанса в php. Я изменил session.save_handler в моем php.ini и по большей части работает правильно. Сессии сохраняются в нем. Однако время от времени я получаю это странное сообщение для определенных сеансов:
PHP Предупреждение: Неизвестно: Не удалось записать данные сеанса (memcached). Убедитесь, что текущая настройка session.save_path верна (x.x.x.x: 11211) в Unknown в строке 0.
Данные сеанса те же, что и в случае 1MB-барьера 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%'