采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,redis为啥用单线程,不用多线程呢,有这部分资料么
单线程有单线程的优势的。
1、单线程处理命令,所有命令串行化执行,没有多线程的加锁操作,也没有多线程的上下文切换的开销;
2、redis之所以单线程,还有一个好处就是保证redis单命令的原子性,这在高并发时作用不可谓不大;
3、redis读写内存速度极快,而cpu和网络都不会成为redis瓶颈,而且作者认为单线程更好控制更易实现
4、Redis只是以单线程处理网络io和读写命令,实际并非真的单线程,Redis主进程除了主线程处理网络io和读写命令外,还存在三个bio辅助线程(后台线程),分别是fsync线程(AOF刷盘操作)、负责文件关闭线程、清理可回收对象线程(如删除大bigkey触发);并且除了主进程外,还会fork bgsave和bgrewriteaof子进程进行RDB持久化和AOF日志重写
多线程的话,线程切换也需要耗时,因为Redis是在内存中存取数据(很快),所以通过单线程的方式反而速度最快
登录后可查看更多问答,登录/注册
Redis课程升级!系统梳理Redis知识体系,掌握redis必备!
1.2k 1
1.2k 2
939 12
2.1k 9
837 6