Redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库服务。
引出单线程模型
开启三个redis-cli客户端同时执行命令:
1、客户端1设置一个字符串键值对:
2、客户端2对counter自增操作:
3、客户端3对counter自增操作:
redis客户端与服务端的模型可以简化成图(如下图所示),每次客户端调用都经历了发送命令、执行命令和返回结果三个过程。
其中第2步执行命令是重点。因为redis是单线程来处理命令的,所以一条命令从客户端到到服务端不会立刻被执行,所有命令都回进入到一个队列