性能高不仅跟线程模型有关,它有很多原因,主要有如下3点:
下面分别阐述。
性能高低都是相对的,Redis是基于内存的数据库,相对的我们拿传统的基于磁盘的数据库进行对比,如图:
其中,Redis数据库基于内存,分场景如下:
传统磁盘数据库,分场景如下:
以上可以看出:Redis是基于内存的数据库,大多数操作在内存中完成,内存的IO效率比磁盘要高的多。因此,这是Redis性能高的一个原因。
Redis是单线程的,通常如果单线程处理效率不高,都开多线程处理,但是Redis这里为什么反到效率高了呢?
Redis的“I/ O 多路 复 用”是采用的效率最高的epoll模式,单线程却实现了多客户端接入,以及高IO利用率。如下图:
数据结构的优化主要有以下两点(篇幅有限,在这里就不展开了):
来源:悟空问答
原文:https://www.cnblogs.com/bjkandy/p/12055845.html