Redis为什么块?

####纯内存访问

####单线程避免上下文切换

####渐进式ReHash、缓存时间戳 

1.完全基于内存,绝大部分请求是纯粹的内存操作,非常的快速,数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是o(1)

2.采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题。不存在加锁释放锁操作。没有因为可能出现死锁而导致的性能消耗。

3.使用多路I/O复用(epoll)模型,非阻塞IO

4.数据结构设计思路是空间换时间。

一句话回答:

因为所有操作基于内存,单用单线程避免线程之间的竞争,采用了多路复用非阻塞IO。

跳表:

建立多层索引。

你可能感兴趣的:(redis,数据库,缓存)