redis单线程原理
来源:6-2 fork

super_web
2019-12-03
老师,redis为啥用单线程,不用多线程呢,有这部分资料么
写回答
2回答
-
梦飞_0002
2021-04-20
单线程有单线程的优势的。
1、单线程处理命令,所有命令串行化执行,没有多线程的加锁操作,也没有多线程的上下文切换的开销;
2、redis之所以单线程,还有一个好处就是保证redis单命令的原子性,这在高并发时作用不可谓不大;
3、redis读写内存速度极快,而cpu和网络都不会成为redis瓶颈,而且作者认为单线程更好控制更易实现
4、Redis只是以单线程处理网络io和读写命令,实际并非真的单线程,Redis主进程除了主线程处理网络io和读写命令外,还存在三个bio辅助线程(后台线程),分别是fsync线程(AOF刷盘操作)、负责文件关闭线程、清理可回收对象线程(如删除大bigkey触发);并且除了主进程外,还会fork bgsave和bgrewriteaof子进程进行RDB持久化和AOF日志重写
00 -
慕盖茨2007490
2019-12-12
多线程的话,线程切换也需要耗时,因为Redis是在内存中存取数据(很快),所以通过单线程的方式反而速度最快
00
相似问题