linux单线程处理多个请求,redis是单线程的,如何处理并发请求?
生活随笔
收集整理的這篇文章主要介紹了
linux单线程处理多个请求,redis是单线程的,如何处理并发请求?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
疑問:
redis是單線程的,如何并發處理多個請求?
下面是我個人的理解。
答案是:使用操作系統的多進程機制。也就是我們常說的,多路復用API,多路復用API本質上是對操作系統多路復用功能的封裝。
什么是操作系統的多進程呢?
簡單來說就是Copy On Write。當父進程對redis頁面進行修改時,會先把這個頁面的數據復制一份,然后在這個副本上進行修改,子進程讀取的還是原來的頁面,并且這個頁面不會被修改,所以子進程可以放心的處理自己的事情,進行數據持久化操作。這就是為什么RDB持久化也叫做快照的原因。
接下來還有一個問題要搞清楚,就是linux系統的父子進程的關系,因為我們還沒有很好的解釋:單線程的linux如何解決并發請求。
一個線程只能屬于一個進程,但是一個進程可以fork生成多個子進程,這就是redis單線程能夠處理多個并發請求的原因。
也就是說,redis的設計者,把多線程的復雜性,轉給了操作系統。在redis層面,無需考慮多線程問題。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的linux单线程处理多个请求,redis是单线程的,如何处理并发请求?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CDH大数据平台搭建
- 下一篇: linux模式匹配,sed的模式匹配用法