请稍等 ...
×

采纳答案成功!

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

关于redis线程模型

老师我有三个小问题想请教,在网上看了一些答案也没底,故来请教,希望听下老师的理解

  1. redis的单线程只是算负责监听socket io吗,那后面真正处理任务的线程又什么呢
  2. 怎么理解 redis瓶颈在io而非cpu(我看很多地方都这么说 但还是不太理解)
  3. redis线程模型 从单线程到redis6.0多线程 怎么看这个现象呢
    十分感谢!!!

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

3回答

Cap 2020-08-09 23:12:30

第三个问题:

1.主要是为了可以充分利用服务器 CPU 资源,目前主线程只能利用一个核。

2.多线程任务可以分摊 Redis 同步 IO 读写负荷;


0 回复 有任何疑惑可以回复我~
Cap 2020-08-09 23:04:10

第二个问题:

1.基于内存的数据库,一般都是简单的存取操作,线程占用的时间很多,时间的花费主要集中在IO上,Redis 主要受限于内存和网络

2.单线程,避免了多线程切换导致的CPU消耗,也不用考虑锁的问题,不存在加锁释放锁的操作,也不存在因死锁而导致的性能消耗

3.如果使用redis进行大量集合计算,cpu单核跑满会是个瓶颈

0 回复 有任何疑惑可以回复我~
Cap 2020-08-09 22:58:37

第一个问题:

这里有个I/O多路复用的知识点,尽管多个文件事件可能会并发地出现,但I/O多路复用程序总是会将所有产生事件的套接字都推到一个队列里面,然后通过这个队列,以有序(sequentially)、同步(synchronously)、每次一个套接字的方式向文件事件分派器传送套接字:当上一个套接字产生的事件被处理完毕之后(该套接字为事件所关联的事件处理器执行完毕), I/O多路复用程序才会继续向文件事件分派器传送下一个套接字。


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号