1.完全基于内存
2.数据结构简单
3.采用单线程,避免了上下文切换和竞争
4.使用多路I/O复用模型
5.自己底层用了RESP协议进行通信(解析快,简单实现)
6.redis有自带的pipleline,客户端允许将多个请求依次发给服务器,过程中而不需要等待请求的回复,在最后再一并读取结果即可。
①相当于以前for循环里面进行了1000次set,需要进行1000次IO,现在通过for循环把1000个set放到管道中,最后进行一次IO。如果果对于命令的执行顺序有强烈要求的,可能pipeline不支持,可以改用mulit事务。
②Redis为每个客户端分配了输入缓冲区,它的作用是将客户端发送的命令临时保存,同时Redis从会输入缓冲区拉取命令并执行,输入缓冲区为客户端发送命令到Redis执行命令提供了缓冲功能。pipleline就是通过缓冲区实现的。
网友评论