redis多线程6.0
redis单线程为什么快
单线程vs多线程
redis单线程指的是收到的读写命令是放到队列里,一条条执行的;
redis用的io多路复用技术,所以可以一次性接收多个客户端请求,然后放到队列中;
先跟服务端建立连接——把命令发到服务端——服务端读命令——服务端再执行命令——服务端再把命令的结果返回给客户端;
命令完整的发到服务端需要时间;
完整发到后才会触发read事件,然后用单线程去依次执行;
而keys 命令是遍历所有key,单线程的redis处理容易卡顿,要避免;
get key做了什么?
答:首先,算出key的hash值,然后从hashmap中定位到,然后比对这个hash值,下的链表中的每一个key;
scan的you biao4就是hash桶的值