关于redis线程模型

来源:15-4 mysql docker安装和使用

sadcloud

2020-08-01

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

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

3回答

Cap

2020-08-09

第三个问题:

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

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


0
0

Cap

2020-08-09

第二个问题:

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

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

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

0
0

Cap

2020-08-09

第一个问题:

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


0
0

全流程开发 GO实战电商网站高并发秒杀系统

运用架构设计与系统化思维,从容应对不同流量等级的“秒杀”场景

1462 学习 · 443 问题

查看课程