请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

redis单线程原理

老师,redis为啥用单线程,不用多线程呢,有这部分资料么

正在回答 回答被采纳积分+3

2回答

梦飞_0002 2021-04-20 19:41:47

单线程有单线程的优势的。

1、单线程处理命令,所有命令串行化执行,没有多线程的加锁操作,也没有多线程的上下文切换的开销;

2、redis之所以单线程,还有一个好处就是保证redis单命令的原子性,这在高并发时作用不可谓不大;

3、redis读写内存速度极快,而cpu和网络都不会成为redis瓶颈,而且作者认为单线程更好控制更易实现

4、Redis只是以单线程处理网络io和读写命令,实际并非真的单线程,Redis主进程除了主线程处理网络io和读写命令外,还存在三个bio辅助线程(后台线程),分别是fsync线程(AOF刷盘操作)、负责文件关闭线程、清理可回收对象线程(如删除大bigkey触发);并且除了主进程外,还会fork bgsave和bgrewriteaof子进程进行RDB持久化和AOF日志重写

0 回复 有任何疑惑可以回复我~
慕盖茨2007490 2019-12-12 16:29:59

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信