redis很快,官网给出的数据是10万/秒,当然是跟机器的配置有关系的,redis是使用单线程架构和IO多路复用来实现高性能
redis单线程处理命令的机制
redis客户端和服务端的通信大致可分为三个步骤
1.发送命令;2.执行命令;3返回结果
当多个redis命令同时到达服务器端时,redis由于单线程的机制会导致命令不会立即被执行,而是进入一个队列中,然后逐个被执行,执行顺序跟队列中的命令顺序有关
这样有关好处就是不会产生并发问题
一般来说单线程处理能力要比多线程差,但是redis的单线程很快主要归结于三点
1.redis是纯内存的访问,内存的响应时间一般远远高于磁盘
2.非阻塞IO,redis使用epoll作为IO的多路复用实现技术
3.单线的避免了线程切换和竞争的消耗,也避免了各种锁的问题
根据redis的单线程架构特性可知,如果某个命令执行时间过长,将会阻塞其他命令 ,这对redis是致命的。
扫描二维码关注公众号,回复:
5508894 查看本文章