- 基于内存实现
数据都存储在内存里,减少了一些不必要的 I/O 操作,操作速率很快。
- 高效的数据结构
底层多种数据结构支持不同的数据类型,支持 Redis 存储不同的数据;
不同数据结构的设计,使得数据存储时间复杂度降到最低。
- 合理的数据编码
根据字符串的长度及元素的个数适配不同的编码格式。
- 合适的线程模型
I/O 多路复用模型同时监听客户端连接;
I/O :网络 I/O
多路:多个 TCP 连接
复用:共用一个线程或进程
单线程在执行过程中不需要进行cpu上下文切换,减少了耗时。
因为多线程在执行过程中需要进行 CPU 的上下文切换,这个操作比较耗时。Redis 又是基于内存实现的,对于内存来说,没有上下文切换效率就是最高的。多次读写都在一个CPU 上,对于内存来说就是最佳方案。