日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

从源码和内核角度分析redis和nginx以及java NIO可以支持多大的并发

發布時間:2023/11/27 生活经验 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从源码和内核角度分析redis和nginx以及java NIO可以支持多大的并发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有人詢問我網上一篇關于“redis為什么單線程這么快”的文章,我建議他不要看了,因為redis是單進程不是單線程,后面的意見不用看了,文章質量肯定不會很好,他也說了自己看了很久源碼似乎還是有些云里霧里,所以我就給他分析了為什么redis這么快,這篇主要講epoll的實現。

從redis和nginx源碼和llinux內核角度分析redis和nginx可以支持多大的并發.

redis和nginx都使用epoll。

這篇專欄你可以看到怎么結合內核源碼的角度分析epoll的紅黑樹數據結構以及linux的文件句柄。

內核版本linux-5.5.7,redis版本redis-5.0.7,nginx版本nginx-1.16.1,jdk版本1.8。

 

對于epoll內核系統了幾個調用

1.執行epoll_create時,創建了紅黑樹和就緒list鏈表。2.執行epoll_ctl時,如果增加fd(socket),則檢查在紅黑樹中是否存在,存在立即返回,不存在則添加到紅黑樹上,然后向內核注冊回調函數,用于當中斷事件來臨時向準備就緒list鏈表中插入數據。3.執行epoll_wait時立刻返回準備就緒鏈表里的數據即可。


redis和nginx,Tomcat netty都是先調用epoll_create創建一個epoll句柄,然后外界有請求過來用epoll_ctl增加事件,有響應會接收到epoll_wait上的響應事件。基本就是這樣一個套路,這篇只分析下epoll_create。

 

先看redis源碼

首先用epoll_create創建一個epoll句柄。

總結

以上是生活随笔為你收集整理的从源码和内核角度分析redis和nginx以及java NIO可以支持多大的并发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。