Я пытаюсь следовать Как поделиться сеансами PHP на нескольких серверах Memcached article и реализуйте это в моей среде:
/etc/php.d/memcache.ini
:
# grep -v ^\; /etc/php.d/memcache.ini
extension=memcache.so
memcache.allow_failover=1
memcache.session_redundancy=2
session.save_handler=memcache
session.save_path='tcp://192.168.52.143:11211, tcp://192.168.52.142:11211'
#
phpinfo();
:
# php -i | grep -E 'memcache.allow_failover|memcache.session_redundancy|session.save_handler|session.save_path'
memcache.allow_failover => 1 => 1
memcache.session_redundancy => 2 => 2
session.save_handler => memcache => memcache
session.save_path => tcp://192.168.52.142:11211, tcp://192.168.52.143:11211 => tcp://192.168.52.142:11211, tcp://192.168.52.143:11211
#
обе системы RHEL6
и бег php-5.3.3
:
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.6 (Santiago)
# rpm -q php php-pecl-memcache
php-5.3.3-40.el6_6.x86_64
php-pecl-memcache-3.0.5-4.el6.x86_64
#
TCP
мудрый: .142
может добраться до .143:11211
, и .143
может добраться до .142:11211
, SELinux
в Permissive
Режим.
Я могу видеть несколько фрагментов, хранящихся в одном memcached
сервер, а не в другом.
Что я делаю не так?
В той статье DigitalOcean, которую я написал, memcache.session_redundancy
, ваш файл конфигурации использовал memcache.redundancy
, оба они разные, и это может быть причиной того, что он работает не так, как ожидалось.
Значение по умолчанию memcache.redundancy
является 1
и он отлично работает для этой настройки.
extension=memcache.so
memcache.allow_failover=1
memcache.session_redundancy=2
session.save_handler=memcache
session.save_path = 'tcp://192.168.52.143:11211,tcp://192.168.52.142:11211'
http://php.net/manual/en/memcache.ini.php
Твой комментарий:
IP в обратном порядке на другом сервере, но синтаксис такой же.
Вот в чем проблема, session.save_path
должен быть точным на всех серверах.
Таким образом, оба сервера должны иметь 'tcp://192.168.52.143:11211,tcp://192.168.52.142:11211'
Читать Шаг второй в этой статье все 3 сервера имеют одинаковый порядок.
Значение memcache.session_redundancy
должно быть равно нет. серверов + 1 из-за ошибка в PHP.
Так что в вашем случае это должно быть:
memcache.session_redundancy=3
Только:
memcache.allow_failover=1
memcache.redundancy=2
должен быть в memcache.ini.
Остальные должны быть в php.ini.