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日志重写

0
0

慕盖茨2007490

2019-12-12

多线程的话,线程切换也需要耗时,因为Redis是在内存中存取数据(很快),所以通过单线程的方式反而速度最快

0
0

一站式学习Redis 从入门到高可用分布式实践

Redis课程升级!系统梳理Redis知识体系,掌握redis必备!

2277 学习 · 261 问题

查看课程