redis 为什么快
基于内存的实现
内存是很快的,和传统的数据库作比较,内存比磁盘是要快2-3个数量级的。
单线程模型
redis的大多数指令都是在单线程中运行的,这能减少不必要的上线文切换,避免加锁,并且可以保证操作的原子性。
IO 多路复用
IO 多路复用是一种高效的 IO 编程模型。
高效的数据结构
redis 根据实际的数据类型和数据量大小选择合适的数据结构。例如在底层,redis有动态字符串,双向链表,压缩列表,跳跃表,hash表等数据结构。
哈希表
redis 全局就是一个大的 hash 表,他的操作时间复杂度是 O(1),并且配合渐进式的 rehash 过程,redis 也不会出现内存拷贝导致阻塞的问题。