如題。
這個問題其實一直困惑着我,網上怎么說的都有,我也查看了很多人講的東西,有了自己的一點點理解。如果你覺得我的理解有問題,麻煩請知會我,謝謝。
首先是我的理解:
由於redis客戶端在調用時等待服務器的返回,所以redis是阻塞的。
redis在處理客戶端的請求時,是單線程逐個處理的,所以redis又是同步的。
所以我的結論是redis是同步阻塞的。
下面的一些鏈接是我看的一些資料:
https://blog.csdn.net/bandaoyu/article/details/90694602 io/阻塞同步概念,linux解釋
同步 異步 阻塞 非阻塞 區別_流水隨波落花逐流的博客-CSDN博客_同步異步阻塞非阻塞:這個文章里提到,異步就是異步,沒有阻塞和非阻塞之稱。而同步下才分為阻塞同步和非阻塞同步。
下面的結論是從上面的文章里拿出來的:
阻塞、非阻塞:
從調用方理解,調用后是否立刻返回,阻塞會被掛起,非阻塞不會被掛起。
異步、同步:
從數據返回理解,同步會一直等待數據。如果從線程方面理解,同步就是線程A等待線程B返回。cpu層次上同步就是等待內核從磁盤查詢好數據到內核緩沖或者從網絡上傳輸好數據,異步就是數據准備好后通過中斷等方式通知io操作完成。