-
基于内存实现
-
高效的数据结构:简单动态字符串、双端列表、压缩列表、字典、跳跃表
- 压缩列表:用来存小数据
- 合理的数据编码
- 合适的线程模型
-
IO多路复用
-
reactor单线程模型
-
无法利用多核,但避免上下文切换、减少耗时。
-
避免同步机制的开销,避免加锁的开销。
-
简单可维护
-
如果不考虑 RDB/AOF 等持久化方案,Redis 是完全的纯内存操作,执行速度是非常快的,因此这部分操作通常不会是性能瓶颈,Redis 真正的性能瓶颈在于网络 I/O,也就是客户端和服务端之间的网络传输延迟,因此 Redis 选择了单线程的 I/O 多路复用来实现它的核心网络模型。
-
-