redis是单线程的为什么速度这么快?

redis理解

1.什么是redis?

 redis是基于内存的也可以持久化的日志型、key-value数据库,是单线程的。

  • 基于内存
  • 可持久化
  • key-value数据库
  • 单线程

2.redis为什么是单线程的?

  1. 由于redis是基于内存进行读写的,所以他的io瓶颈并不在磁盘上 ,内存的速度非常快。
  2. redis是key-value型数据库,相比于关系型数据库效率更高,时间复杂度为O(1)。
  3. redis的使用场景为连接非常多但每个连接开销很少,而CPU切换线程的开销很大,所以单线程更合适。
  4. redis采用非阻塞式的io,不在网络连接上浪费时间。

3.如何在多核心多线程的服务器上使用redis?

 由于redis是单线程的,而我们的服务器往往是多线程的,怎么才能高效率的利用我们的服务器呢?我们可以使用redis集群的方式来实现对服务器资源的利用。创建redis集群,redis集群包含多个redis服务,每个服务都有自己的哈希槽,每次要存储或者要读取时,先对key使用crc16算法,得到一个值,用这个值与集群哈希槽的和取余数,这样就得到一个小于哈希槽数的值,如果要存的话就存到这一哈希槽对应的redis中,取的话也从这个redis服务中取。这样便实现了对redis的多线程利用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值