Redis 是單線程+多路IO復用技術
多路復用:使用一個線程來檢查多個文件描述符的就緒狀態
如果有一個文件描述符就緒,則返回
否則阻塞直到超時
得到就緒狀態后進行真正的操作可以在同一個線程里執行,也可以啟動線程執行(線程池)
本質上是沒有阻塞的
- 阻塞lO(串行):給女神發一條短信, 說我來找你了,然后就默默的一直等着 女神下樓,這個期間除了等待你不會做其他事情,屬於備胎做法.
- 非阻塞IO:給女神發短信,如果不回,接着再發,一直 發到女神下樓,這個期間你除了發短信等待不會做其他事情,屬於專-做法.
- IO多路復用:是找一個宿管大媽來幫你監視下樓的女生,這個期間你可以些其他的事情.例如可以順便看看其他妹子,玩玩王者榮耀,上個廁所等等.
IO復用又包括select, poll, epoll模式那么它們的區別是什么?
- select:
一個女生下樓, select大媽都不知道這個是不是你的女神,她需要一個一 個 詢問,並且select大媽能力還有限,最多一次幫 你監視1024個妹子
- poll:
poll大媽不限制盯着女生的數量,只要是經過宿舍樓門口的女生,都會幫你去問是不是你女神
- epoll:
epoll大媽不限制盯着女生的數量,並且也不需要一個- 個去問.那么如何做呢? epol1大媽會為每個進宿舍樓的女生臉上貼上一一個大字條,上面寫上女生自己的名字,只要女姓下樓了, eoll大媽就知道這個是不是你女神了,然后大媽再通知你.