采用单线程,避免了不必要的上下文切换和竞争条件;不存在多线程导致的切换而消耗CPU
不用考虑各种锁的问题,不存在加锁和释放锁的的操作,没有因为可能出现的死锁而导致的性能消耗
简单可维护,多线程模式会使得程序的编写更加复杂和麻烦,单线程实现易实现
redis 是单线程系统?
我们常说 redis 单线程是指其网络事件处理模型 reactor 是单线程
如果一次 client 请求会删除几百万 keys 值,那么这条命令可能会导致阻塞。在 redis 4.0 选择引入多线程来实现这一类非阻塞的命令
在 redis6.0 版本正式引入多线程去处理客户端的 I/O 读写响应,而 redis 命令事件的处理还是在主线程单线处理
假如是针对整个 redis 系统,则一直有其他线程去处理异步任务,如 AOF、RDB 的同步
redis I/O模型
redis 处理快,不单单因为它是个单线程纯内存系统,还有它采用了 Reactor 模型,使用 I/O 多路复用来实现对外部请求的处理,减少网络连接、读写等待时间。使其在网络 I/O 操作中能并发处理大量的客户端请求,实现高吞吐率,高并发
责任编辑:武晓燕 来源: 潜行前行 Redis单线程Reactor
(责任编辑:焦点)
神火股份:3月23日融资净偿还37.10万元 当前融资余额为6.29亿元
比速科技(01372.HK)发布公告:拟发行4000万股认购股份
中青旅(600138.SH):2020年度由盈转亏 基本每股亏损0.3206元