1.基于内存进行操作,c语言编写
2.单线程不用去线程切换不用处理线程安全问题
3.主要影响性能的在io上,才用了io多路复用+事件派发(连接应答处理器,命令请求处理器,命令回复处理器),是非阻塞io
并且例如bgsave,bgrewtriteof都是不会阻塞主进程的
解释下io多路复用:
单线程监听多个socket,当有可读,可写的socket时会通知,避免无意义的等待。并且采用epoll模式会把就绪好的socket写入到用户空间进一步提升了性能
Redis6.0引入了多线程命令解析和回复
但执行的时候依然是单线程的