亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP- 深入PHP、Redis連接

2019-11-08 03:12:03
字體:
來源:轉載
供稿:網友

php- 深入PHP、Redis連接

pconnect, phPRedis中用于client連接server的api。

The connection will not be closed on close or end of request until the php process ends. 這是api說明中的一句原文

那么問題來了: 1. php process ends是指一次php執行完結,還是fpm的終結?如果是后者,那意味著即使一次php執行完畢,redis連接也不會被釋放,下一次執行時redis連接會被重用。 2. The connection will not be closed on close是 說如果使用了pconnect, 即使在代碼中顯示的調用close(), 也不會關閉連接?

帶著這兩個問題,我們做下實驗,深入看一下pconnect究竟做了些什么。

準備工作

環境: nginx + php-fpm php5.3 我們將fpm配置為

pm.max_children = 1 pm.start_servers = 1 pm.max_spare_servers = 1

這樣,我們的頁面請求會由一個確定的fpm進程執行,方便strace跟蹤。

對應頁面請求的php代碼: 復制代碼

ip=“10.136.30.144”;port = 7777; $redis = new Redis();

redis?>pconnect(ip, port,1);key = “test”; $value = “this is test”;

redis?>set(key, value);d = redis?>get(key); var_dump($d);

復制代碼

代碼的功能很簡單,連接redis,先設置一個值,再取出。

測試問題1

思路:   使用strace觀察fpm的系統調用,如果連接的生命周期是一次php執行,那么每次頁面調用,都會有connect系統調用,用以連接redis;如果連接的生命周期是fpm的終結,那么只有第一次頁面調用會有connect系統調用 ,之后由于連接被重用,無需connect,直接發命令請求即可。

啟動一個新的fpm(進程號28082)。 執行

strace -p 28082 -s 1024 -o redis_1

記錄一次頁面請求的系統調用。如下圖所示:

可以看到進程先建立了socket連接(文件描述符為9)。然后給reids發一系列命令,最終取到“this is test”的結果串。且沒有關閉連接相關的redis命令或系統調用。

頁面請求結束后,我lsof -n -p 28082到,fpm進程仍然保有一個到10.136.30.144的reids連接,其文件描述符為9(這與strace的結果一致)。

執行

strace -p 28082 -s 1024 -o redis_2

記錄 第二次頁面請求的系統調用,得到下面結果。

與第一次請求的區別是:省去了建立連接的過程,直接發送reids命令,得到結果! 再使用lsof -n -p 28082查看fpm打開的文件描述符,結果與上文件相同。 說明,連接的確是被重用的,沒有新建。

執行第6次頁面請求(因為我們在準備工作中的配置,此時fpm已經是一個新的進程了),用lsof查看進程打開的文件描述符。 我們發現,雖然仍然有描述符為9的reids連接,但兩個tcp連接的臨時端口不同了,也就是連接改變了!

至此,我們得出問題1的結論: 當使用pconnect時,連接會被重用,連接的生命周期是fpm進程的生命周期,而非一次php的執行。。

測試問題2

為了對比,我們先看一下,使用connect連接redis,并調用redis->close()的系統調用。(將上述代碼中的pconnect改為connect, 同時在最后加入redis->close())

我們看到,除了建立連接外,在程序結尾,還向reids發送了quit命令,并關閉了連接的文件描述符。

接下來,我們看在使用pconnect后,redis->close()有何表現 代碼調整為: 復制代碼

$ip = "10.136.30.144";$port = 7777;$redis = new Redis();$redis->pconnect($ip, $port, 1);$key = "test";$value = "this is test";$redis->set($key, $value);$d = $redis->get($key);var_dump($d);$redis->close();try { $redis->get($key);} catch (Exception $e) { echo $e->getMessage();}

復制代碼

我們直接看第2次執行頁面請求的系統調用

并沒有建立連接,同樣是直接發送命令得到結果。說明連接被重用。同時,沒有向reids server發送quit命令,也無關閉連接的系統調用。 但注意,頁面請求的返回結果:

至此,我們得出問題2的結論: 如果代碼中使用pconnect, close的作用僅是使當前php不能再進行redis請求,但無法真正關閉redis長連接,連接在后續請求中仍然會被重用,直至fpm進程生命周期結束。

結論

當使用pconnect時,連接會被重用,連接的生命周期是fpm進程的生命周期,而非一次php的執行。 2.如果代碼中使用pconnect, close的作用僅是使當前php不能再進行redis請求,但無法真正關閉redis長連接,連接在后續請求中仍然會被重用,直至fpm進程生命周期結束。

轉自:http://blog.csdn.net/qmhball/article/details/46988111


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲美腿欧美激情另类| 国产美女直播视频一区| 亚洲成人性视频| 欧美日韩激情视频| 91成人福利在线| 国产精品美女无圣光视频| www.午夜精品| 九九精品在线观看| 国产亚洲xxx| 日韩国产高清视频在线| 久久久久久久久久久国产| 热久久免费国产视频| 日本高清视频一区| 在线观看日韩欧美| 欧美在线视频免费播放| 91中文字幕在线观看| 欧美日韩在线观看视频| 一区二区三区视频在线| 91高清免费视频| 亚洲影视九九影院在线观看| 懂色av影视一区二区三区| 国产精品入口夜色视频大尺度| 国产91网红主播在线观看| 亚洲国产精品久久久久| 精品色蜜蜜精品视频在线观看| 国产亚洲精品久久久久久牛牛| 亚洲a中文字幕| 亚洲白虎美女被爆操| www国产亚洲精品久久网站| 国模视频一区二区三区| 精品久久久免费| 国产日产久久高清欧美一区| 久久免费少妇高潮久久精品99| 久久精品国产亚洲一区二区| 精品国产一区二区三区久久狼黑人| 欧美一区二区大胆人体摄影专业网站| 亚洲天堂av网| 亚洲国产精品免费| 欧美电影在线观看高清| 欧美又大又粗又长| 亚洲精品ady| 久久综合色影院| 国产欧美日韩免费| 亚洲精品国产欧美| 欧美福利在线观看| 国产精品视频在线观看| 日韩欧美在线中文字幕| 91高潮精品免费porn| 欧美极品第一页| 久久99视频免费| 狠狠色狠狠色综合日日小说| 欧美黑人又粗大| 高潮白浆女日韩av免费看| 最新国产成人av网站网址麻豆| 一区二区欧美久久| 久久久久久久久久久人体| 日本精品久久中文字幕佐佐木| 久久久亚洲精选| 国产精品久久精品| 国产日韩中文字幕在线| 欧美成人国产va精品日本一级| 色综合久久中文字幕综合网小说| 久久频这里精品99香蕉| 国a精品视频大全| 亚洲综合在线小说| 亚洲人成欧美中文字幕| 久久伊人91精品综合网站| 91精品在线一区| 97av在线视频免费播放| 亚洲男子天堂网| 国产精品自拍视频| 欧美成人精品一区二区| www国产精品com| 亚洲欧洲在线观看| 日韩欧美高清视频| 91热精品视频| 色妞久久福利网| 亚洲精品欧美日韩| 国产精品成人观看视频国产奇米| 亚洲欧洲第一视频| 欧美一区二区三区……| 一夜七次郎国产精品亚洲| 欧美伦理91i| www.久久撸.com| 亚洲人成77777在线观看网| 亚洲色图17p| 日韩精品www| 最近2019中文字幕mv免费看| 国产日韩欧美影视| 在线激情影院一区| 亚洲另类激情图| 国内外成人免费激情在线视频网站| 啪一啪鲁一鲁2019在线视频| 狠狠躁天天躁日日躁欧美| 国产精品男女猛烈高潮激情| 亚洲免费人成在线视频观看| 91视频国产一区| 国产精品999999| 欧美日本在线视频中文字字幕| 日韩黄色高清视频| 欧美性猛xxx| 91地址最新发布| 国产精品一区二区av影院萌芽| 亚洲乱码国产乱码精品精天堂| 亚洲综合社区网| 日韩在线免费视频观看| 日韩欧美极品在线观看| 在线激情影院一区| 亚洲欧美国产另类| 欧美日韩国产中文字幕| 国产精品网站入口| 亚洲人成亚洲人成在线观看| 久久久久国产精品免费网站| 免费91麻豆精品国产自产在线观看| 91免费人成网站在线观看18| 91国产精品电影| 国产激情999| 欧美精品情趣视频| 亚洲欧美制服另类日韩| 亚洲欧美一区二区三区情侣bbw| 91精品国产综合久久香蕉922| 亚洲成人网av| 欧美激情a∨在线视频播放| 国产精品成人一区二区| 精品日本美女福利在线观看| 亚洲大胆美女视频| 国产精品国产三级国产aⅴ9色| 国产精品视频精品| 日韩成人在线视频| 久久亚洲私人国产精品va| 国产高清视频一区三区| 亚洲国产精品va在看黑人| 92看片淫黄大片看国产片| 91国产精品电影| 亚洲综合精品一区二区| 国产精品高潮呻吟视频| 亚洲色图13p| 日韩一区视频在线| 精品少妇v888av| 日韩av在线免播放器| 国产精品一区二区女厕厕| 久久久爽爽爽美女图片| 中文字幕亚洲一区在线观看| 另类图片亚洲另类| 日本欧美国产在线| 欧美日韩亚洲成人| 亚洲欧美一区二区三区四区| 日韩在线免费高清视频| 国产精品视频男人的天堂| 日韩一区二区精品视频| 日韩一区二区av| 操91在线视频| 欧美人与性动交a欧美精品| 国产亚洲精品综合一区91| 国产aaa精品| 97在线视频精品| 在线观看欧美成人| 国产精品久久久久久久久借妻| 国产精品亚洲精品| 狠狠躁夜夜躁人人躁婷婷91| 国产主播精品在线| 日韩在线观看免费全集电视剧网站| 91成人精品网站| 国产激情999|