2017-06-21 57 views
1

今天,我不得不安裝的Memcached PECL爲PHP7我想我的會話存儲Memcached的後移動到Memcached的因爲PHP7 *的.VER問題與Memcached的與會話存儲

,但我認爲這會花費太多長於默認會話存儲(文件)

沒有Sess的頁面加載。 Memcached < 200 ms

使用Sess進行頁面加載。 Memcached高於5秒

而問題是隻有會話!我試圖將其他數據存儲在memcached中,並儘快檢索它們,沒有任何延遲。

我memcached的設置是:

PORT="11211" 
USER="memcached" 
MAXCONN="1024" 
CACHESIZE="512" 
OPTIONS="-l 127.0.0.1" 

我的PECL PHP Memcached的設置(在的phpinfo太所示)是:

extension=memcached.so 

session.save_handler=memcached 
session.save_path="localhost:11211" 

[memcached] 
memcached.sess_locking = On 
memcached.sess_lock_wait_min = 1000; 
memcached.sess_lock_wait_max = 2000; 
memcached.sess_lock_retries = 10; 
memcached.sess_lock_expire = 0; 
memcached.sess_prefix = "memc.sess.key." 
memcached.sess_persistent = Off 
memcached.sess_consistent_hash = On 
memcached.sess_remove_failed) 
memcached.sess_remove_failed_servers = Off 
memcached.sess_number_of_replicas = 0 
memcached.sess_binary_protocol = On 
memcached.sess_randomize_replica_read = Off 
memcached.sess_connect_timeout = 1000 
memcached.sess_sasl_username = NULL 
memcached.sess_sasl_password = NULL 
memcached.compression_type = "fastlz" 
memcached.compression_factor = "1.3" 
memcached.compression_threshold = 2000 
memcached.serializer = "igbinary" 
memcached.store_retry_count = 2 
memcached.default_consistent_hash = Off 
memcached.default_binary_protocol = Off 
memcached.default_connect_timeout = 0 

+我session_write_close()檢查,結果是同樣所以我假設它不是會話鎖定問題

而且,php運行FPM unix套接字,如果它是相關的

問候

+1

嘗試設置'的session.save_path =:如果PHP與FPM Unix套接字運行 「UNIX //run/memcached/memcached.sock」'這樣。如果仍然不行,請嘗試'session.save_path =「/ run/memcached/memcached.sock」。在這兩種情況下重新啓動FPM。 –

+0

@DileepKumar Tnx我嘗試了兩個。第一個不工作,但第二個工作正常,連接到memcached服務器,但存在與會話的基礎問題!如果我在使用memcache頁面加載時將甚至1個小數據存儲到會話中會再次高於5秒,這真的很奇怪!我不知道它是因爲memcached pecl與php 7的兼容性問題,或者是什麼原因造成的,我很害怕將它用於其他數據,可能將來我也會遇到與其他數據相同的問題。 –

回答

1

問題通過更新libmemcached 1.0.161.0.18手動自百勝回購只有1.0.16

隨着現在更新會話存儲使用memcached的儘快固定沒有任何延遲。

問候