# 太长不看版
-
Redis 是基于内存的访问,内存的读写速度非常快;
-
Redis 是单线程的模型。保证了每个操作的原子性,省去了很多上下文切换线程的时间以及竞态而产生的消耗;
笔记
Redis 是单线程的,其实是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等等,实际是由额外的线程执行的。
-
Redis 使用多路复用技术,可以处理并发的连接。非阻塞 IO 内部实现采用 epoll,采用了 epoll+自己实现的简单的事件轮询(event loop)框架。epoll 中的读、写、关闭、连接都转化成了事件,然后利用 epoll 的多路复用特性,绝不在 io 上浪费一点时间。
-
数据结构。Redis 全程使用 hash 结构,读取速度快,还有一些特殊的数据结构,对数据存储进行了优化,如压缩表,对短数据进行压缩存储,再如,跳表,使用有序的数据结构加快读取的速度。