91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis的IO多路復用

發布時間:2020-07-22 01:18:04 來源:網絡 閱讀:7555 作者:深圳豪斯 欄目:關系型數據庫

一、linux的IO復用函數

Redis的IO多路復用

同一個線程內,多個描述符的IO操作,能夠并發交替地順序執行。

epoll只提供三個函數:

int epoll_create(int size); #創建epoll句柄

int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);

關聯被監聽的事件和epool句柄(可以通過op參數來增加,刪除和修改關聯關系)

第一個參數epfd,為epoll_create()的返回值,

第二個參數op,表示關聯關系:EPOLL_CTL_ADD(增)EPOLL_CTL_MOD(改)EPOLL_CTL_DEL(刪)
第三個參數fd,是需要監聽的fd,

第四個參數event,告訴內核需要監聽的具體事件:EPOLLIN(可讀)EPOLLOUT(可寫)EPOLLPRI(緊急可讀)EPOLLERR(錯誤)EPOLLHUP(掛斷)EPOLLET(觸發模式ET或LT)EPOLLONESHOT(只監聽一次)

此處可以設置,事件對應的回調函數。

int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout);

如果沒有epoll_ctl中監聽的事件產生,就會阻塞在這里,一直等到監聽事件產生,或者等到超時。

如果有epoll_ctl中監聽的事件,就執行具體的事件處理回調函數。


epoll保證了每個fd在整個過程中只會拷貝一次,從內核空間到用戶空間。

二、redis的IO多路復用

Redis的IO多路復用

redis利用epoll來實現IO多路復用,將連接信息和事件放到隊列中,依次放到文件事件分派器,事件分派器將事件分發給事件處理器。

事件處理器對不同的事件,進行處理。

main –> aeMain –> while { aeProcessEvents –> aeApiPoll –> epoll_wait }

Redis的IO多路復用

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

家居| 北安市| 浦北县| 沛县| 高阳县| 岳普湖县| 文化| 合江县| 永修县| 阆中市| 内乡县| 宁武县| 淮滨县| 祁阳县| 始兴县| 牟定县| 青海省| 洛浦县| 雷波县| 青神县| 敦化市| 乳山市| 于都县| 慈溪市| 屏边| 三亚市| 淮滨县| 乌兰浩特市| 特克斯县| 梁河县| 抚宁县| 中江县| 通道| 阿尔山市| 阿巴嘎旗| 武定县| 克什克腾旗| 曲松县| 丹阳市| 新田县| 壤塘县|