如题。
这个问题其实一直困惑着我,网上怎么说的都有,我也查看了很多人讲的东西,有了自己的一点点理解。如果你觉得我的理解有问题,麻烦请知会我,谢谢。
首先是我的理解:
由于redis客户端在调用时等待服务器的返回,所以redis是阻塞的。
redis在处理客户端的请求时,是单线程逐个处理的,所以redis又是同步的。
所以我的结论是redis是同步阻塞的。
下面的一些链接是我看的一些资料:
https://blog.csdn.net/bandaoyu/article/details/90694602 io/阻塞同步概念,linux解释
同步 异步 阻塞 非阻塞 区别_流水随波落花逐流的博客-CSDN博客_同步异步阻塞非阻塞:这个文章里提到,异步就是异步,没有阻塞和非阻塞之称。而同步下才分为阻塞同步和非阻塞同步。
下面的结论是从上面的文章里拿出来的:
阻塞、非阻塞:
从调用方理解,调用后是否立刻返回,阻塞会被挂起,非阻塞不会被挂起。
异步、同步:
从数据返回理解,同步会一直等待数据。如果从线程方面理解,同步就是线程A等待线程B返回。cpu层次上同步就是等待内核从磁盘查询好数据到内核缓冲或者从网络上传输好数据,异步就是数据准备好后通过中断等方式通知io操作完成。