redis 为啥这么快

2020-07-27  本文已影响0人  wenfh2020

天下武功,唯快不破。redis 为什么那么快?redis 单进程并发 10w+ (hiredis + libev 异步测试)。本章从这几个角度进行分析:单进程,单线程,多线程,多进程,多实例。


🔥文章来源:wenfh2020.com


1. 单进程

redis 核心逻辑在单进程主线程里实现。


1.1. 单线程


有的朋友说,单线程节省了锁带来的开销,我认为这也是其中一个原因,但它并不是快的主要原因。

单线程实现主逻辑最主要作用,我认为是避免了锁带来的复杂度,减少了坑,从而节省了人力成本。尽管这样,利用多核优势,在多线程中实现 key 粒度的读写锁,或许是未来 redis 需要改进优化的一个趋势。


1.2. 多线程

redis 有部分场景需要子进程和子线程辅助。


2. 多进程

redis 主服务是单进程的。单进程不能充分利用系统 cpu 核心。可以通过多开实例提高系统的并发能力。


2.1. 子进程

redis 有持久化功能:aof 和 rdb 方式。持久化需要将内存数据写入磁盘,写磁盘是缓慢的 I/O,为了避免影响主进程的性能,有些需要对整个内存数据集落地的操作,会通过 fork 子进程进行。例如 aof 的 rewrite 操作,rdb 持久化。


2.2. 多实例


总结

上一篇 下一篇

猜你喜欢

热点阅读