精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

面試:Redis 是單線程,是怎么解決高并發問題的

存儲 存儲軟件 Redis
Nginx 與 uWSGI 一起工作,Nginx 處理靜態文件,將動態的接口請求轉發給 uWSGI。這就是涉及 Nginx 與 uWSGI 以何種協議進行通信,Nginx 的 uwsgi_pass 選項告訴它使用特殊的 uWSGI 協議,而這種協議就是 uWSGI 的套接字使用的默認協議。

[[416419]]

你好,我是強壯的病貓,在這里分享面經。這不,最近又面了一家公司,又是被虐,有幾道題貓哥一時語塞,今天分享給你,以后碰到這類問題時可以試試反虐。

首先,得說下,無論哪一次面試,貓哥必然會被問到兩個問題:

2-5 分鐘的自我介紹。如果是外企或跨國企業或大廠,如果你能用英文流暢的自我介紹,必然是加分項,朋友們,離開校園后,英語的學習可別放棄。

你印象最深刻的一次問題解決經歷,或者說你最有成就感的一次經歷。這個通過你的描述,看看你對技術的興趣,看看你解決問題的方法論,當然還有口語表達能力。

這兩個問題還沒有哪次面試不遇到的,要面試的同學,可要好好準備,多排練下,人生如戲,全靠演技。

然后,說下這次遇到的幾個問題:

1. uWSGI 生產環境的配置有兩種方式一種是 socket,一種是 http,兩種方式有什么區別?為什么你用 socket 而不用 http?

我當時直接說這個不太清楚為什么 socket 更好。一臉懵逼,懊惱自己當時只顧著這樣用卻不多想一下為什么要這樣用。

參考回答:

通常情況下,Nginx 與 uWSGI 一起工作,Nginx 處理靜態文件,將動態的接口請求轉發給 uWSGI。這就是涉及 Nginx 與 uWSGI 以何種協議進行通信,Nginx 的 uwsgi_pass 選項告訴它使用特殊的 uWSGI 協議,而這種協議就是 uWSGI 的套接字使用的默認協議。

uwsgi.ini 示例:

  1. [uwsgi] 
  2. master = true 
  3. chdir= /root/KeJiTuan/rearEnd 
  4. socket = :8000 
  5. #http = :8000 
  6. socket = %(chdir)/uwsgi.socket 
  7. wsgi-file = rearEnd/wsgi.py 
  8. processes = 1 
  9. threads = 4 
  10. virtualenv = /root/KeJiTuan/env 
  11. static-map = /static=/root/KeJiTuan/frontEnd/dist/static 
  12. stats = %(chdir)/uwsgi.status 
  13. pidfile = %(chdir)/uwsgi.pid 
  14. daemonize = %(chdir)/uwsgi.log% 

如果你使用 http 選項配置 uWSGI,這樣 uWSGI 本身就可以對外提供 http 服務,不會做任何有用的事情,這樣的話,就需要將 NGINX 配置為使用 HTTP 與 uWSGI 對話,并且 NGINX 將不得不重寫標頭以表示它正在代理,并且最終會做更多的工作,因此性能不如 socket 方式。

也就是說,配置為 socket 其實用的就是 TCP 協議,配置為 http 用的就是 HTTP 協議,TCP 是傳輸層協議,更底層,程序處理的報文更小,性能更快,而 HTTP 是建立在 TCP 之上的應用層協議,需要處理更多的報文封裝與解碼。

因此生產環境 uWSGI 首選 socket 配置。

2. redis 是單線程,是怎么解決高并發問題的?

這個我當時是這樣回答的:單線程想高并發,就是用到了類似 nginx 的事件循環之類的技術。

參考回答:

redis 是基于內存的,內存的讀寫速度非常快(純內存); 數據存在內存中,數據結構用 HashMap,HashMap 的優勢就是查找和操作的時間復雜度都是 O(1)。

redis是單線程的,省去了很多上下文切換線程的時間(避免線程切換的資源消耗)。

redis 使用 I/O 多路復用技術,可以處理高并發的連接(非阻塞I/O)。(如果你懂 I/O 多路復用,可以展開講一講,展示你鉆研的深度)

寫到這里,貓哥自己也產生了疑問,什么是事件循環,什么是 I/O 多路復用,兩者有什么關系?于是找了找學習資料,整理如下,如有反對意見,請文末留言討論。

事件循環是一種編程范式,通常,我們寫服務器處理模型的程序時,有以下幾種模型:

(1)每收到一個請求,創建一個新的進程,來處理該請求;(2)每收到一個請求,創建一個新的線程,來處理該請求;(3)每收到一個請求,放入一個事件列表,讓主進程通過非阻塞 I/O 方式來處理請求;

第三種,就是事件驅動的方式,比如 Python 中的 協程就是事件循環,也大多數網絡服務器采用的方式比如 Nginx。

比如說 javascript 吧,一大特點就是單線程,那為什你沒有覺得瀏覽器中的 javascript 慢呢?肯定沒有,對吧,因為 javascript 在處理 DOM 時也用到了事件循環。

單線程就意味著,所有任務需要排隊,前一個任務結束,才會執行后一個任務。如果前一個任務耗時很長,后一個任務就不得不一直等著。但是如果任務是計算型任務,CPU 忙不過來,等就等了,如果是 I/O 型任務,主線程完全可以不管 I/O 設備,而是掛起處于等待中的任務,先運行排在后面的任務。等到 I/O 設備返回了結果,把掛起的任務繼續執行下去。

也就是說主線程之外,有一個任務隊列,只要異步任務(異步 I/O)有了結果,就在任務隊列中放置一個事件,主線程中任務執行完就會去任務隊列取出有結果的異步任務執行,具體過程如下圖所示:

因為整個過程是不斷循環的,這種運行機制又稱事件循環。到這里,相信你已經對事件循環有一個比較清晰的印象了。

那什么是 I/O 多路復用?這里借用下知乎的高贊回答:

作者:柴小喵 鏈接:https://www.zhihu.com/question/28594409/answer/52835876 來源:知乎。

下面舉一個例子,模擬一個 tcp 服務器處理 30 個客戶 socket。假設你是一個老師,讓 30 個學生解答一道題目,然后檢查學生做的是否正確,你有下面幾個選擇:1. 第一種選擇:按順序逐個檢查,先檢查 A,然后是 B,之后是 C、D。。。這中間如果有一個學生卡住,全班都會被耽誤。這種模式就好比,你用循環挨個處理 socket,根本不具有并發能力。2. 第二種選擇:你創建 30 個分身,每個分身檢查一個學生的答案是否正確。這種類似于為每一個用戶創建一個進程或者線程處理連接。3. 第三種選擇,你站在講臺上等,誰解答完誰舉手。這時 C、D 舉手,表示他們解答問題完畢,你下去依次檢查 C、D 的答案,然后繼續回到講臺上等。此時 E、A 又舉手,然后去處理 E 和 A。。。這種就是 I/O 復用模型,Linux 下的 select、poll 和 epoll 就是干這個的。將用戶 socket 對應的 fd 注冊進 epoll,然后 epoll 幫你監聽哪些 socket 上有消息到達,這樣就避免了大量的無用操作。此時的 socket 應該采用非阻塞模式。這樣,整個過程只在調用 select、poll、epoll 這些調用的時候才會阻塞,收發客戶消息是不會阻塞的,整個進程或者線程就被充分利用起來,這就是事件驅動。

也就是說 select、poll、epoll 都是 I/O 多路復用的機制,區別如下

說到這里,你應該明白了,事件循環是一種編程范式,很多場景都可以這樣來設計代碼,而 I/O 多路復用是一種 I/O 模型,是操作系統提供的一種機制,與進程、線程的概念是等價的,也就是說現代操作系統提供三種并發機制:

  • 多進程
  • 多線程
  • I/O 多路復用

而 I/O 多路復用中的 epoll 用到了事件驅動,使得連接沒有上限,提升了并發性能。

3. HTTP 中的 Keep-Alive 起什么作用,是怎么實現的?

參考回答:

HTTP 是建立在 TCP 之上的,每次建立連接,都要經歷三次握手,每次斷開鏈接都要四次揮手,建立和斷開連接的成本都很高。

Keep-Alive 是一個通用消息頭,允許消息發送者暗示連接的狀態,還可以用來設置超時時長和最大請求數。

  1. HTTP/1.1 200 OK 
  2. Connection: keep-alive 
  3. Content-Encoding: gzip 
  4. Content-Type: text/html; charset=utf-8 
  5. Date: Thu, 11 Aug 2016 15:23:13 GMT 
  6. Keep-Alive: timeout=5, max=1000 
  7. Last-Modified: Mon, 25 Jul 2016 04:32:39 GMT 
  8. Server: Apache 

Keep-Alive 使客戶端到服務器端的連接持續有效,當出現對服務器的后繼請求時,Keep-Alive 功能避免了建立或者重新建立連接。現在的 Web 服務器,基本上都支持 HTTP Keep-Alive,Keep-Alive 帶來以下優勢:

  • 較少的CPU和內存的使用(由于同時打開的連接的減少了)
  • 允許請求和應答的 HTTP 流水線
  • 降低擁塞控制 (TCP連接減少了)
  • 減少了后續請求的延遲(無需再進行握手)
  • 報告錯誤無需關閉 TCP 連接

劣勢:

保持連接會讓某些不必要的連接也占用服務器的資源,比如單個文件被不斷請求的服務(例如圖片存放網站),Keep-Alive 可能會極大的影響性能,因為它在文件被請求之后還保持了不必要的連接很長時間。

HTTP Keep-Alive 是怎么實現的?

客戶端發送 connection:Keep-Alive 頭給服務端,且服務端也接受這個Keep-Alive 的話,兩邊對上暗號,這個連接就可以復用了,一個 HTTP 處理完之后,另外一個 HTTP 數據直接從這個連接走了。

當要斷開連接時可以加入 Connection: close 關閉連接,當然也可以設置Keep-Alive 模式的屬性,例如 Keep-Alive: timeout=5, max=100,表示這個TCP通道可以保持 5 秒,max=100,表示這個長連接最多接收 100 次請求就斷開。

但是如果開啟了 Keep-Alive模式,那么客戶端如何知道某一次的響應結束了呢?

以下有兩個方法:

如果是靜態的響應數據,可以通過判斷響應頭部中的 Content-Length 字段,判斷數據達到這個大小就知道數據傳輸結束了。

但是返回的數據是動態變化的,服務器不能第一時間知道數據長度,這樣就沒有 Content-Length 關鍵字了。這種情況下,服務器是分塊傳輸數據的,Transfer-Encoding:chunk,這時候就要根據傳輸的數據塊 chunk 來判斷,數據傳輸結束的時候,最后的一個數據塊 chunk 的長度是 0。

最后的話

面完后,貓哥就把自己回答的不是很好的問題記下來,然后去搜索一番,總結出來希望能幫到你,貓哥后續會不定期分享面試經驗,如果有收獲,不妨關注、在看、點贊支持一波。

本文轉載自微信公眾號「Python七號」,可以通過以下二維碼關注。轉載本文請聯系Python七號公眾號。

 

責任編輯:武曉燕 來源: Python七號
相關推薦

2019-05-06 11:12:18

Redis高并發單線程

2025-06-17 00:22:00

2025-04-24 08:15:00

Redis單線程線程

2020-10-30 16:20:38

Redis單線程高并發

2019-05-07 09:44:45

Redis高并發模型

2022-07-18 13:59:43

Redis單線程進程

2020-10-26 08:55:52

Redis單線程模型

2019-04-02 11:20:48

Redis高并發單線程

2021-12-28 09:50:18

Redis單線程高并發

2019-06-17 14:20:51

Redis數據庫Java

2024-08-21 10:28:54

Redis數據結構內存

2019-11-25 10:13:52

Redis單線程I

2022-01-04 11:11:32

Redis單線程Reactor

2021-06-11 11:28:22

多線程fork單線程

2021-08-16 15:49:31

開發框架單線程異步

2009-07-10 09:05:20

SwingWorker

2021-01-10 11:21:33

JavaScript語言開發

2023-10-15 12:23:10

單線程Redis

2024-09-27 11:51:33

Redis多線程單線程

2020-06-11 09:35:39

Redis單線程Java
點贊
收藏

51CTO技術棧公眾號

国产高清视频一区三区| 亚洲国产一区二区三区四区| 国产四区在线观看| 性生活免费网站| 久久久久91| 爱福利视频一区| 久久人人爽人人爽人人片| 欧美高清你懂的| 亚洲精品高清视频在线观看| 欧美高清视频一区二区三区在线观看| 亚洲无码久久久久| 亚洲国产黄色| 久久在线视频在线| 久久精品—区二区三区舞蹈| av成人综合| 欧美色视频在线观看| 男女啪啪免费视频网站| av在线免费一区| 99热这里都是精品| 96sao精品视频在线观看| 黄色在线观看国产| 黑人一区二区| 精品国偷自产在线视频| 9.1成人看片免费版| 亚洲精品一二三**| 欧美日韩一区在线观看| 无码aⅴ精品一区二区三区浪潮| 成人高清免费在线| 欧美高清在线一区二区| 国内视频一区二区| 精品人妻午夜一区二区三区四区 | 国产精品涩涩涩视频网站| 50度灰在线| 国产精品传媒在线| 日韩精品极品视频在线观看免费| 黄片毛片在线看| 精品无码三级在线观看视频| 国产99久久精品一区二区| 国产一级特黄视频| 欧美日韩精品| 大量国产精品视频| 丁香花五月激情| 国产精品成人av| 色偷偷av亚洲男人的天堂| xxxx日本黄色| 国产一区二区精品福利地址| 亚洲欧美精品中文字幕在线| 国产精品久久久久久亚洲av| 亚洲精品一区在线| 欧美r级在线观看| 99精品视频免费版的特色功能| 97精品资源在线观看| 欧美体内she精视频| 五月天亚洲视频| 免费一级欧美在线观看视频| 欧美色图天堂网| 粉色视频免费看| 亚洲热av色在线播放| 88在线观看91蜜桃国自产| 欧美成人三级在线播放| 亚洲一区av| 日韩女优毛片在线| 久久免费精品国产| 欧美偷窥清纯综合图区| 日韩精品中文字幕在线观看| 一区二区三区伦理片| 黄色不卡一区| 中文字幕在线亚洲| 国产一区二区三区在线视频观看| 欧美69wwwcom| 久久久久久久久亚洲| 日韩不卡在线播放| 老司机精品视频网站| 国产精品日韩久久久久| 国产女无套免费视频| 成人性生交大合| 欧美精品一区二区三区在线四季 | 久久精品电影一区二区| 五月天丁香激情| 99在线观看免费视频精品观看| 欧洲精品毛片网站| 中文字幕在线观看欧美| 国产成人免费视频一区| 久久伊人资源站| 黄色精品免费看| 午夜精品久久久久久久久久久| 日本一本二本在线观看| 婷婷激情成人| 欧美精品一区在线观看| 国产1区2区在线观看| 欧美久久综合| 日韩美女免费线视频| 国产草草影院ccyycom| 91丨porny丨首页| 一区二区三区精品国产| 理论片午夜视频在线观看| 欧美三级一区二区| 欧美极品jizzhd欧美仙踪林| 日本一区二区免费高清| 久久久在线观看| 一区二区视频在线免费观看| www.一区二区| 欧美性受黑人性爽| 欧美电影免费观看| 精品日韩在线一区| 国产精品麻豆免费版现看视频| 在线播放精品| 国产在线观看精品| 噜噜噜久久,亚洲精品国产品| 国产精品网站在线播放| 国产亚洲综合视频| 日韩一二三区| 日韩亚洲第一页| 成人免费毛片视频| 成人精品一区二区三区四区 | 激情成人四房播| 色香蕉成人二区免费| 亚洲国产精品狼友在线观看| 99精品电影| 国产精品www| 天堂在线资源网| 一区二区高清在线| 99日在线视频| 青青草原综合久久大伊人精品 | jvid福利写真一区二区三区| 无码毛片aaa在线| 高清亚洲高清| 正在播放国产一区| 日本高清不卡码| av一二三不卡影片| 久草视频这里只有精品| 免费观看亚洲视频大全| 色噜噜狠狠狠综合曰曰曰| 丰满少妇xoxoxo视频| 99精品视频在线免费观看| 国产女教师bbwbbwbbw| 久久九九精品视频| 久久夜色撩人精品| 国产精品热久久| 中文字幕一区二区三区色视频| 国产无套粉嫩白浆内谢的出处| 亚洲黄色录像| 日本精品久久中文字幕佐佐木| 日本免费一区视频| 午夜精品久久久久久久久| 在线xxxxx| 亚洲中午字幕| 久久青青草综合| 国产精品粉嫩| 国产亚洲在线播放| 日韩欧美一级大片| 国产精品电影一区二区三区| 亚洲一区二区三区观看| 91精品啪在线观看国产18| 亚洲va久久久噜噜噜| 成人video亚洲精品| 日韩欧美色电影| 精品无码久久久久| 不卡的av在线播放| 日韩黄色片视频| 波多野结衣的一区二区三区 | 伊人成年综合网| 日本一区二区在线不卡| 欧美第一页浮力影院| 国产大片一区| 国产传媒一区二区三区| sm久久捆绑调教精品一区| 日韩av综合中文字幕| 成人一级免费视频| 中文字幕佐山爱一区二区免费| 久久久福利影院| 亚洲毛片视频| 日本精品一区二区三区视频| 香蕉久久一区| 高清在线视频日韩欧美| 日本免费一区二区三区最新| 欧美日韩综合不卡| 久操视频免费在线观看| 99精品国产99久久久久久白柏| 一级在线免费视频| 中文字幕一区二区精品区| 精品乱码一区二区三区| 草莓视频成人appios| 欧美激情喷水视频| 国产黄色片在线播放| 日韩一级成人av| 人人草在线观看| 一区二区视频在线看| 久久久久久久久久久国产精品| 久久av资源网| 黄色大片中文字幕| 水蜜桃久久夜色精品一区| www.成人三级视频| 69堂精品视频在线播放| 免费不卡欧美自拍视频| 九色在线视频| 欧美va在线播放| 中文字幕久久网| 天天av天天翘天天综合网 | 四虎成人精品永久免费av九九| 国产精品一国产精品最新章节| 黑人一区二区三区| 91国内产香蕉| www.久久久久.com| 在线精品视频视频中文字幕| 天堂网2014av| 日韩三级免费观看| 中文字幕在线观看精品| 富二代精品短视频| 国产在线欧美在线| 亚洲人成影院在线观看| 亚洲最大成人综合网| aaa国产一区| 精品人妻一区二区三区免费| 日本午夜一区二区| 国产在线青青草| 激情丁香综合| 妺妺窝人体色www看人体| 色婷婷热久久| 先锋在线资源一区二区三区| 网友自拍一区| 国偷自产av一区二区三区小尤奈| 国产精区一区二区| 国产一区欧美二区三区| 视频一区在线免费看| 欧美亚洲第一页| 182在线视频观看| 欧美激情极品视频| free性欧美hd另类精品| www.日韩免费| 三级外国片在线观看视频| 亚洲精品一区二区在线| 天天av天天翘| 日韩精品电影网| 深夜福利免费在线观看| 亚洲成人中文字幕| 懂色av蜜臀av粉嫩av分享吧| 日韩小视频在线观看专区| 国产精品久久久午夜夜伦鲁鲁| 欧美三级电影网| 在线亚洲欧美日韩| 6080国产精品一区二区| 免费无码国产精品| 欧美天天综合网| 亚洲在线精品视频| 91精品欧美一区二区三区综合在| 97精品久久人人爽人人爽| 欧美日韩精品欧美日韩精品一| 中文人妻熟女乱又乱精品| 色94色欧美sute亚洲线路一久| 久久久久久91亚洲精品中文字幕| 福利精品视频在线| 亚洲欧美一二三区| 日本道免费精品一区二区三区| 欧美一区二区三区久久久| 欧美亚洲国产一区二区三区| 亚洲天堂手机在线| 欧美一区二区三区在| 亚洲国产日韩在线观看| 欧美精品一区二区蜜臀亚洲| 天天操天天射天天| 亚洲色图色老头| av在线播放网| 操日韩av在线电影| 2020av在线| 国产精品av在线播放| 日韩毛片网站| 国产伦精品一区二区三区免| 日韩欧美ww| 伊人久久大香线蕉精品| 欧美日本一区二区视频在线观看| www.射射射| 日韩专区中文字幕一区二区| 亚洲精品久久久久久宅男| 国产成人在线视频网站| 性欧美丰满熟妇xxxx性仙踪林| 国产精品亲子乱子伦xxxx裸| 91视频综合网| 欧美日韩国产综合视频在线观看中文| 黄色污污视频软件| 欧美一区国产二区| 欧美孕妇性xxxⅹ精品hd| 中文字幕欧美日韩| 另类视频在线| 国产成人久久久精品一区| 精品视频在线观看免费观看| 韩日午夜在线资源一区二区| 精品久久国产| www.国产在线播放| 日韩在线a电影| 88av在线播放| 成人免费一区二区三区在线观看| 精品人妻在线播放| 欧美日韩在线直播| 五月婷婷丁香六月| 久久久精品免费| 国产不卡网站| 国产伦一区二区三区色一情| 波多野结衣的一区二区三区| 人妻av中文系列| 国产真实乱对白精彩久久| 国产成人无码一区二区在线观看| 成人免费在线播放视频| 成人毛片一区二区三区| 精品成人一区二区| 麻豆传媒视频在线| 国产99久久精品一区二区 夜夜躁日日躁| 不卡精品视频| 亚洲一区二区三区免费观看| 国产一级久久| 在线观看一区二区三区四区| 中文字幕一区在线观看视频| 国产一区二区视频网站| 亚洲国产成人久久| 最新国产在线拍揄自揄视频| 国产精品久久中文| 婷婷成人在线| 福利视频一二区| 国产白丝精品91爽爽久久| 日韩av毛片在线观看| 色婷婷久久久亚洲一区二区三区| 三级网站免费观看| 久久久久久久国产精品视频| 麻豆一二三区精品蜜桃| 天天爱天天做天天操| 另类人妖一区二区av| 精品亚洲aⅴ无码一区二区三区| 欧美日韩在线影院| 开心激情综合网| 欧美激情手机在线视频| av在线成人| 熟女熟妇伦久久影院毛片一区二区| 蜜臀精品一区二区三区在线观看| 亚洲成人网在线播放| 欧美性20hd另类| 亚洲欧洲精品视频| 久久久亚洲国产| 欧美一性一交| 免费在线观看亚洲视频| av一区二区久久| 久久久久99精品成人片我成大片| 亚洲精品久久久久中文字幕欢迎你 | 国产综合视频在线| 久久久久久中文| 久久大胆人体视频| 国产极品尤物在线| 99国产麻豆精品| 中文在线第一页| 国产亚洲精品久久久久久| 成人国产一区| 中文字幕久精品免| 国产精品一级二级三级| 久久久久久激情| 亚洲精品福利资源站| 日韩精品影院| 中文字幕一区二区三区在线乱码 | 亚洲国产片色| 精品黑人一区二区三区观看时间| 色系网站成人免费| fc2在线中文字幕| 亚洲自拍偷拍第一页| 一区免费在线| 精品人妻无码一区二区三区换脸| 欧美视频中文一区二区三区在线观看 | 波多野结衣一区二区在线| 中文字幕亚洲综合| 高清一区二区| 欧美精品一区二区三区三州| 久久久一区二区三区| 成年人网站国产| 成人性生交大片免费看中文网站| 日本亚洲色大成网站www久久| 日韩精品视频观看| 精品176极品一区| 久久亚洲国产成人精品无码区 | 日韩欧美自拍偷拍| 欧美伦理91| 艳色歌舞团一区二区三区| 国产99久久久国产精品潘金网站| 欧美激情亚洲综合| 精品国内产的精品视频在线观看| 66精品视频在线观看| 国产一区亚洲二区三区| 亚洲精品视频一区二区| 日本在线一二三| 51国偷自产一区二区三区| 母乳一区在线观看| 少妇被躁爽到高潮无码文| 亚洲精品成a人在线观看| 亚洲精品一区av| 日韩av资源在线| 亚洲综合色区另类av| 黄色国产在线| eeuss一区二区三区| 免费观看日韩av| 国产成人亚洲精品自产在线| 丝袜亚洲另类欧美重口| 婷婷综合成人| 天天干天天曰天天操| 在线看国产一区二区|