美文网首页redis
Redis为什么这么快

Redis为什么这么快

作者: bxcs | 来源:发表于2021-07-17 23:42 被阅读0次

1、纯内存KV结果数据库,时间复杂度O(1)

2、单线程

    ① 不需要频繁创建和销毁线程

    ② 避免上下文切换

    ③ 避免资源竞争

    ④ 单线程已经够用,CPU已经不是redis性能瓶颈,内存和网络有可能是

3、异步非阻塞IO,多路复用

virtual memory 虚拟内存

32位系统的虚拟空间最大2^32=4G

64位系统的虚拟空间最大不是2^64=1024*1024TB = 1024ED

                       是2^48 = 256T

引入虚拟内存的意义

1、虚拟内存要比物理内存大,可以提供更大的地址空间,虚拟内存的地址是连续的,程序使用连接更加简单。

2、通过引入虚拟内容,可以对物理内存进行隔离。不同的进程在操作的时候互相不会影响。通过虚拟内存可以实现对主存的共享。可以把同一块的物理内存映射到不同的虚拟地址,可以实现内存的共享

虚拟内存分为:用户user空间和内核kernel空间

上下文切换

上下文,每个任务运行的时候,CPU必须知道它是从哪里加载,从哪里开始运行。系统必须先设置好CPU的寄存器和程序计数器。这些叫CPU的上下文。保存在kernel中。任务重新执行的时候会再把上下文加载进来,通过这样的方式它能保证任务原来的状态不受影响,这样就是任务看起来是连续的。

上下文的切换是一个很消耗资源的操作。redis使用单线程避免了上下文切换带来的资源操作

进程的阻塞

正在运行的进程会提出对系统服务的请求,比如IO的操作。由于某些原因它没有及时得到系统的响应,这个进程它会把自己做成一个阻塞的状态。并且等待某一些事件出现之后他会被唤醒。进程在阻塞的时候是不会占用CPU资源的

文件描述符File Descriptor

linux操作系统是基于文件的操作系统。linux操作系统中FD标识文件对象。FD是内核为了高效的管理已经打开的文件所创建的索引。执行IO操作都是通过FD执行IO操作的。

FD非负整数。

0 标准的输入,键盘

1 标准的输出,显示器

2 标准错误输出,显示器

IO多路复用

相关文章

  • redis的底层原理

    redis 为什么这么快 redis的速度 redis的qps可以达到10万左右(每秒请求数) redis 为什么...

  • Redis为什么这么快

    Redis简介 Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件。它支持多种类...

  • Redis 为什么这么快?

    1、简介和应用 Redis是一个由ANSI C语言编写,性能优秀、支持网络、可持久化的K-K内存数据库,并提供多种...

  • redis为什么这么快

    基于内存,没有磁盘io 单线程,没有线程的创建及线程间的切换,也不用对竞争资源的加锁、解锁,没有了锁的等待 数据结...

  • Redis 为什么这么快?

    作者:我叫刘半仙 来源:my.oschina.net/liughDevelop/blog/2236771 本文内容...

  • Redis为什么这么快

    Redis快的原因 内存结构 单线程 IO多路复用 内存结构 Redis是KV结构的内存数据库,在内存上操作数据,...

  • redis为什么这么快

  • Redis为什么这么快

    1、纯内存KV结果数据库,时间复杂度O(1) 2、单线程 ① 不需要频繁创建和销毁线程 ② 避免上下文切换...

  • Redis为什么这么快?

    我们都知道Redis很快,它QPS可达10万(每秒请求数) 基于内存实现 我们都知道内存读写是比磁盘读写快很多的。...

  • Redis为什么这么快?

    Redis为什么这么快? 概述 Redis的QPS可达10w/s,可简单看下图所示 基于内存实现 内存的速度比磁盘...

网友评论

    本文标题:Redis为什么这么快

    本文链接:https://www.haomeiwen.com/subject/dovgpltx.html