phpRedis超時梳理(轉)


如果phpRedis的connect的timeout參數設置了值,getTimeout()和getReadTimeout()都是這個值。

subscribe()的超時,會是這個值的2倍。

如果connect的timeout設置了0,永不超時,subscribe()的超時為php.ini里面的default_socket_timeout的兩倍。

如果在超時時間內,沒有publish到channel的話,subscribe就會報read error on connection。

所以,應該在connect的時候,timeout為小值,比如0.2,在subscribe前,
$redis->setOption(\Redis::OPT_READ_TIMEOUT, -1);
設置為-1,0是不管用的。奇怪的是connect的時候timeout默認為0表示時間不限

如果connect的timeout傳遞了0,但是subscribe超時還是由default_socket_timeout說了算。

只有在
$redis->setOption(\Redis::OPT_READ_TIMEOUT, -1);

default_socket_timeout設置為-1
時,才不會超時。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM