初识redis:单线程模型

单线程模型

Redis只使用一个线程,用来处理所有的命令请求。

严格来说, Redis Server是多线程的, 只是它的请求处理整个流程是单线程处理的。 这一点我们一定要清楚了解到,不要单纯地认为Redis Server是单线程的。

redis 能够使用单线程模型很好的工作,原因主要在于 redis 的核心业务逻辑,都是短平快的,
不太消耗 cpu 资源,也就不太吃多核了。

弊端在于:redis如果某个操作占用时间长,就会阻塞其他命令的执行。

Redis虽然是单线程模型,但是效率很高,速度很快,这是为什么?(作为对比,参照物是mysql,oracle,sql,server)

  1. redis访问内存,数据库访问硬盘。速度差别非常大。
  2. redis的核心功能,相对于数据库来说更简单。数据库对于数据的插入删除査询,都有更复杂的功能支持。这样的功能势必要花费更多的开销。
    比如:针对插入删除,数据库中的各种约束,都会使数据库做额外的工作。
  3. 单线程模型,避免的很多不必要的线程竞争开销。redis每个操作都是短平快的,简单操作一下,不太消耗cpu,就算搞多线程,也提升不大。
  4. 处理网络IO的时候,用到了epoll这样的IO多路复用机制

Redis单线程的缺点

如果前一个请求发生耗时比较久的操作,那么整个Redis都会被堵塞,其他请求也无法进来。直到这个操作完成操作,其他操作才能进行。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值