《Redis官方文档》事件库
生活随笔
收集整理的這篇文章主要介紹了
《Redis官方文档》事件库
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
究竟為什么需要一個事件庫呢?讓我們通過下面一系列問答來了解為什么。
問:你希望網(wǎng)絡(luò)服務(wù)器持續(xù)不斷地做什么事?
答:監(jiān)聽端口上進(jìn)來的連接請求并接收它們。
問:調(diào)用套接字的Accept方法產(chǎn)生一個描述符,我們用這個描述符做什么?
答:保存這個描述符,并在它上面完成一次非阻塞讀寫操作。
問:為什么讀寫操作必須是非阻塞式的?
答:如果文件操作(在Unix系統(tǒng)中甚至于套接字都被描述成一個文件)是阻塞式的那么當(dāng)它在一次文件I/O操作中被鎖定時它怎么可能接收另外一個請求
問:我猜我必須在套接字上做很多次非阻塞式讀寫操作來得知它何時才能準(zhǔn)備好,我說得對嗎?
答:是的,這些就是事件庫為你做的事。現(xiàn)在你知道了吧。
問:那事件庫是怎么來完成它需要做的事呢?
答:事件庫使用操作系統(tǒng)提供的輪詢設(shè)施配合定時器一起完成工作。
問:那么有沒有開源事件庫來完成上面你描述的工作呢?
答:是的。libevent和libev就是我首先想到的兩個這樣的事件庫。
問:Redis使用了這樣的開源事件庫來處理套接字輸入輸出了嗎?
答:并沒有,由于種種原因Redis實現(xiàn)了自己的事件庫。
- 轉(zhuǎn)載自?并發(fā)編程網(wǎng) - ifeve.com
總結(jié)
以上是生活随笔為你收集整理的《Redis官方文档》事件库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iMX8方案服务-辰汉
- 下一篇: spring事务管理 Transacti