Mam kilka serwerów Memcached do użycia jako pamięć sesji PHP, ale pomimo próby różnych ustawień nie mogę uzyskać kluczy sesji, aby pojawić się na obu serwerach.PHP Memcached session replika issue
Moja php.ini jest następujący:
session.save_handler = memcached
session.save_path = "192.168.134.38:11211,192.168.134.234:11211"
Moja memcached.ini jest warianty:
extension=memcached.so
memcached.sess_consistent_hash=1
memcached.sess_number_of_replicas=1
memcached.sess_binary=1
Jeśli uruchomić memcached użyciu -vv widzę klawisze są zapisywane na pierwszy serwer:
<30 new auto-negotiating client connection
30: Client using the binary protocol
<30 Read binary protocol data:
<30 0x80 0x0c 0x00 0x28
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x28
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
<30 GET memc.sess.key.9bn8cdu9c1j7ko1tmflgr433k1
>30 Writing bin response:
>30 0x81 0x0c 0x00 0x28
>30 0x04 0x00 0x00 0x00
>30 0x00 0x00 0x03 0xc6
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
<30 Read binary protocol data:
<30 0x80 0x01 0x00 0x28
<30 0x08 0x00 0x00 0x00
<30 0x00 0x00 0x03 0xcb
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
<30 SET memc.sess.key.9bn8cdu9c1j7ko1tmflgr433k1 Value len is 923
>30 Writing bin response:
>30 0x81 0x01 0x00 0x00
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x05
<30 Read binary protocol data:
<30 0x80 0x07 0x00 0x00
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
>30 Writing bin response:
>30 0x81 0x07 0x00 0x00
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
<30 connection closed.
Jednak drugi serwer po prostu łączy się/rozłącza, ale nic nie jest przechowywane:
<30 new auto-negotiating client connection
30: Client using the ascii protocol
<30 quit
<30 connection closed.
Tak szybko, jak zabijesz pierwsze sesje serwera, zostaną utracone i nie nastąpi przełączenie awaryjne.
Ktoś wie, co się tutaj dzieje?
Edit:
Stworzyliśmy kilka sesji w różnych przeglądarkach, wygląda na to, że klawisze są rozmieszczone, ale nie replikowane.
Serwer 1:
stats cachedump 12 100
ITEM memc.sess.key.80iie5lhm36mddkekdk488q923 [922 b; 1406287763 s]
Server 2:
stats cachedump 12 100
ITEM memc.sess.key.ehd1nsm6icc2qsotbkcp8i9sd7 [874 b; 1406287898 s]
ITEM memc.sess.key.d3p0id333ggbd0004n4rcc4890 [875 b; 1406287868 s]
ITEM memc.sess.key.7hek9e2aakgqv9sm2bcq5fbfb3 [922 b; 1406287842 s]