文章目录
Redis哪些设计保证了比较快
- 第一,Redis 是内存数据库,大多数操作都在内存中完成,避免了磁盘随机 I/O。
- 第二,Redis 核心命令执行是单线程的,避免了多线程锁竞争和上下文切换,而且 Redis 命令通常比较简单,执行时间很短,所以单线程也能支撑很高吞吐。
- 第三,Redis 使用 I/O 多路复用,比如
epoll,可以用一个线程管理大量客户端连接,而不是一个连接一个线程。 - 第四,Redis 底层数据结构设计得很高效,比如
SDS、listpack、quicklist、hashtable、skiplist等,会根据数据规模选择更合适的编码方式。 - 第五,Redis 有很多避免阻塞的优化,比如渐进式 rehash、惰性删除加定期删除、
UNLINK异步释放大 key、AOF 后台刷盘等。