首先,Redis是一个使用C语言开发的Key-Value数据库,与其他数据库不同的事,它的数据是存在内存中的。这是Redis速度快的主要原因。

        在计算机中数据一般存在磁盘中,磁盘的两大重要指标,1.寻址 在磁盘中是ms级别,2.带宽是MB到GB之间,而在内存中寻址是ns级别,在这一方面,磁盘比内存慢10万倍,内存中的带宽最低是GB级别。综合来看,数据在内存中,省去了IO限制,各方面都优于磁盘。 

        Redis是单进程单线程单实例的,也就意味着它可以同时运行多个Redis服务。由于内存快,IO慢的情况,在处理并发情况时使用epoll(非阻塞的多路复用)来遍历按顺序处理请求。单线程做业务时,省去了线程切换的开销,这也是它速度快的原因之一。

        Redis底层高效数据存储的结构,也是速度快的原因之一。Redis的存储命令在运行后,底层会把数据存储在一个全局哈希表里(数组加链表),时间复杂度为  O(1),存储查询时,速度很快。