Redis 虽然以单进程单线程模型进行操作,但为什么它的性能却十分优秀?

Redis 虽然以单进程单线程模型进行操作,但是它的性能却十分优秀。总结来说,主要是因为:

绝大部分请求是纯粹的内存操作;
采用单线程,避免了不必要的上下文切换和竞争条件;
内部实现采用非阻塞 IO 和 epoll,基于 epoll 自己实现的简单的事件框架。epoll 中的读、写、关闭、连接都转化成了事件,然后利用 epoll 的多路复用特性,绝不在 IO 上浪费一点时间。

你可能感兴趣的:(Redis 虽然以单进程单线程模型进行操作,但为什么它的性能却十分优秀?)