1. 程式人生 > >redis的單線程架構

redis的單線程架構

返回 redis使用 內存 配置 產生 技術 響應 tro poll

redis很快,官網給出的數據是10萬/秒,當然是跟機器的配置有關系的,redis是使用單線程架構和IO多路復用來實現高性能

redis單線程處理命令的機制

redis客戶端和服務端的通信大致可分為三個步驟

1.發送命令;2.執行命令;3返回結果

當多個redis命令同時到達服務器端時,redis由於單線程的機制會導致命令不會立即被執行,而是進入一個隊列中,然後逐個被執行,執行順序跟隊列中的命令順序有關

這樣有關好處就是不會產生並發問題

一般來說單線程處理能力要比多線程差,但是redis的單線程很快主要歸結於三點

1.redis是純內存的訪問,內存的響應時間一般遠遠高於磁盤

2.非阻塞IO

,redis使用epoll作為IO的多路復用實現技術

3.單線的避免了線程切換和競爭的消耗,也避免了各種鎖的問題

根據redis的單線程架構特性可知,如果某個命令執行時間過長,將會阻塞其他命令 ,這對redis是致命的。

redis的單線程架構