redis为什么采用单线程

Redis的单线程任务:

      redis的单线程指的是 redis的网络IO和键值对的读写是由一个现成来完成的,这也是redis对外提供服务的主流程。但是redis的其他功能,比如持久化,异步删除,集群数据同步等都是由额外的线程来完成的。

Redis为什么用单线程

      在我们采用多线程的情况下,如果没有良好的系统设计,得到的效果其实并不好。

在redis的场景下,会存在共享同一个数据结构的场景,当多个线程共享同一个数据结构的时候,为了保证共享资源的正确性,就需要额外的机制来保障,这个额外的机制就会带来额外的开销。

并发控制的话,如果没有精细的设计,而只是加一个粗力度的排斥锁,那么大部分的请求也不会被阻塞住。而且也会降低系统易调试性和可维护性。

 

单线程的redis为什么这么快

理论上来说单线程的处理能力要比多线程差很多,但是redis单线程却能够保证每秒10w次的请求,主要有两个原因

  1. redis的大部分操作都是在内存中来完成的。
  2. redis中的数据采用了高效的数据结构 例如hash 跳表。
  3. redis采用了多路复用机制,能够在网络IO操作中并发处理大量请求操作。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值