返回顶部
首页 > 资讯 > 数据库 >Redis速度为什么快
  • 567
分享到

Redis速度为什么快

2024-04-02 19:04:59 567人浏览 独家记忆
摘要

这篇文章给大家分享的是有关Redis速度为什么快的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Va

这篇文章给大家分享的是有关Redis速度为什么快的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Value可以由String,hash,list,set,zset,Bitmaps,HyperLogLog等多种数据结构算法组成。Redis还提供了键过期,发布订阅,事务lua脚本,哨兵,Cluster等功能。

Redis执行命令的速度非常快,根据官方给的性能可以达到10w+qps。那么本文主要介绍到底Redis快在哪里,主要有以下几点:

一、开发语言

现在我们都用高级语言来编程,比如Java、python等。也许你会觉得C语言很古老,但是它真的很有用,毕竟unix系统就是用C实现的,所以C语言是非常贴近操作系统的语言。Redis就是用C语言开发的,所以执行会比较快。

另外多说一句,大学生们好好学C,会让你更好的理解计算机操作系统。别觉得学了高级语言就可以不用关注底层,欠的债总归要还的。此处推荐一本比较难啃的书《深入理解计算系统》。

二、纯内存访问

Redis将所有数据放在内存中,非数据同步正常工作中,是不需要从磁盘读取数据的,0次io。内存响应时间大约为100纳秒,这是Redis速度快的重要基础。先看看CPU的速度:

Redis速度为什么快

拿我的电脑来说,主频是3.1G,也就是说每秒可以执行3.1*10^9个指令。所以说CPU看世界是非常非常慢的,内存比它慢百倍,磁盘比他慢百万倍,你说快不快?

借了一张《深入理解计算机系统》的图,展示了一个典型的存储器层次结构,在L0层,CPU可以在一个时钟周期访问到,基于SRAM的高速缓存春续期,可以在几个CPU时钟周期访问到,然后是基于DRAM的主存,可以在几十到几百个时钟周期访问到他们。

Redis速度为什么快

三、单线程

第一,单线程简化算法的实现,并发的数据结构实现不但困难且测试也麻烦。第二,单线程避免了线程切换以及加释放锁带来的消耗,对于服务端开发来说,锁和线程切换通常是性能杀手。当然了,单线程也会有它的缺点,也是Redis的噩梦:阻塞。如果执行一个命令过长,那么会造成其他命令的阻塞,对于Redis是十分致命的,所以Redis是面向快速执行场景的数据库

除了Redis之外,node.js也是单线程,Nginx也是单线程,但他们都是服务器高性能的典范。

四、非阻塞多路I/O复用机制

在这之前先要说一下传统的阻塞I/O是如何工作的:当使用read或者write对某一文件描述符(File Descriptor FD)进行读写的时候,如果数据没有收到,那么该线程会被挂起,直到收到数据。

阻塞模型虽然易于理解,但是在需要处理多个客户端任务的时候,不会使用阻塞模型。

Redis速度为什么快

I/O多路复用实际上是指多个连接的管理可以在同一进程。多路是指网络连接,复用只是同一个线程。在网络服务中,I/O多路复用起的作用是一次性把多个连接的事件通知业务代码处理,处理的方式由业务代码来决定。

在I/O多路复用模型中,最重要的函数调用就是I/O 多路复用函数,该方法能同时监控多个文件描述符(fd)的读写情况,当其中的某些fd可读/写时,该方法就会返回可读/写的fd个数。

Redis速度为什么快

Redis使用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll的read、write、close等都转换成事件,不在网络I/O上浪费过多的时间。实现对多个FD读写的监控,提高性能。

Redis速度为什么快

举个形象的例子吧。比如一个tcp服务器处理20个客户端Socket

A方案:顺序处理,如果第一个socket因为网卡读数据处理慢了,一阻塞后面都玩蛋去。

B方案:每个socket请求都创建一个分身子进程来处理,不说每个进程消耗大量系统资源,光是进程切换就够操作系统累的了。

C方案(I/O复用模型,epoll):将用户socket对应的fd注册进epoll(实际上服务器和操作系统之间传递的不是socket的fd而是fd_set的数据结构),然后epoll只告诉哪些需要读/写的socket,只需要处理那些活跃的、有变化的socket fd的就好了。

这样,整个过程只在调用epoll的时候才会阻塞,收发客户消息是不会阻塞的。

感谢各位的阅读!关于“Redis速度为什么快”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

您可能感兴趣的文档:

--结束END--

本文标题: Redis速度为什么快

本文链接: https://lsjlt.com/news/71335.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Redis速度为什么快
    这篇文章给大家分享的是有关Redis速度为什么快的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Va...
    99+
    2024-04-02
  • Redis为何速度这么快
    小编给大家分享一下Redis为何速度这么快,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 我们都知道...
    99+
    2024-04-02
  • 为什么redis的运行速度很快
    为什么redis的运行速度很快?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Redis是纯内存数据库,一般都是简单的存取操作,...
    99+
    2024-04-02
  • 美国服务器速度为什么快
    美国服务器速度快的原因:1.美国服务器都会提供SSD升级选项,用于存储您的站点数据,可以确保服务器快速加载;2.美国服务器可以提供高性能的CPU和大容量的RAM,一台服务器往往可以运行多个网站;3.美国网络带宽充足,一般都是以100M为基本...
    99+
    2024-04-02
  • Redis为什么快
    本篇内容介绍了“Redis为什么快”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Redis是C语言开发的,C语言自己就有字符类型,但是Red...
    99+
    2023-06-16
  • 速度快的vps价格为什么不同
    速度快vps价格不同的原因有:1、vps的品牌,品牌知名度越高,价格越高;2、vps的配置,配置越高,价格越高;3、vps的节点,就近节点比较便宜;4、vps购买时间的长短,时间越长,价格越高;5、vps的优惠活动,活动优惠折扣大,租用vp...
    99+
    2024-04-02
  • 为什么香港服务器的速度快
    香港服务器速度快的原因有:1、香港服务器带宽资源充足,并且分为香港本地带宽和国际带宽两种,使用专线直连情况下ping值可以低到50ms左右;2、香港处于全球网络枢纽位置,香港服务器的线路不存在国内电信跟网通互联不互通的问题,因此所有访问者速...
    99+
    2024-04-02
  • mongodb为什么比redis快
    MongoDB比Redis快的原因有以下几点:1. 数据存储方式不同:Redis是基于内存的数据库,数据存储在内存中,而MongoD...
    99+
    2023-08-31
    mongodb redis
  • 为什么香港云主机托管的速度快
    香港云主机托管速度快的要素:1. 香港云主机部署在顶尖主机房,基本设施完善,硬件齐全,保证网络的路线通畅,降低设备故障率。2. 香港云主机采用双线网络,迅速连接内地和国外,实现全球互访无压力。具体内容如下:一、高級硬件配置主机房配备决策服务...
    99+
    2024-04-02
  • Redis为什么选择单线程?Redis为什么这么快?
    今天搞一下经典面试题Redis为什么选择单线程?Redis为什么这么快?,实现快速入门,丰富个人简历,提高面试level,给自己增加一点谈资,秒变面试小达人,BAT不是梦。 一、Re...
    99+
    2023-03-21
    redis为什么选择单线程和双线程 为什么redis是单线程的 redis单线程为什么能支持并发
  • redis单线程速度快的原因
    小编给大家分享一下redis单线程速度快的原因,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!Redis之所以执行速度很快,主要依赖于以下几个原因:(一)纯内存操作,避免大量访问数据库,减少直接...
    99+
    2024-04-02
  • mongodb和redis哪个读取速度快
    redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用...
    99+
    2024-04-02
  • 云服务器速度比个人电脑快吗为什么
    云服务器的速度取决于多重因素,包括服务器的硬件配置、网络连接速度、内存和磁盘访问速度等。以下是一些因素的影响: 硬件配置:云服务器需要大量的计算资源来处理各种计算任务。因此,它需要高性能的硬件,以满足处理数据和处理任务的需求。 网络连接...
    99+
    2023-10-26
    个人电脑 速度 服务器
  • 美国服务器机房访问速度为什么这么快
    美国服务器机房访问速度快的原因可能有以下几点: 网络基础设施完善:美国拥有世界领先的网络基础设施,包括高速光纤网络覆盖率高、网络...
    99+
    2024-04-09
    美国服务器 服务器
  • Redis快速部署为Docker容器的实现方法是什么
    Redis快速部署为Docker容器的实现方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Redis是一种内存键值存储,可以保存高性能的抽象数据结构。开源软件通常用...
    99+
    2023-06-22
  • redis单线程执行速度这么快的原因
    这篇文章主要介绍了redis单线程执行速度这么快的原因,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。Redis之所以执行速度很快,主要依赖于以下...
    99+
    2024-04-02
  • 亚马逊服务器中国访问速度快吗为什么
    中国互联网环境:中国的互联网环境可能存在一些特殊情况,如网络带宽不足、网络延迟等,这也会导致中国访问亚马逊服务器的速度比其他地区慢一些。 网络环境:亚马逊服务器所在的网络环境也会影响访问速度,如果使用的是国外网络,访问速度可能会更慢。 服...
    99+
    2023-10-27
    亚马逊 速度快 中国
  • windows下载速度慢上传速度快的原因是什么
    本文小编为大家详细介绍“windows下载速度慢上传速度快的原因是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“windows下载速度慢上传速度快的原因是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。原...
    99+
    2023-07-01
  • Redis是单线程为什么这么快
    这篇文章给大家分享的是有关Redis是单线程为什么这么快的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.Redis简介Redis是一个开源的内存中的数据结构存储系统,它可以用作...
    99+
    2024-04-02
  • 云服务器速度比个人电脑快吗为什么这么慢
    另外,云服务器的使用也可以使得数据更加安全和可靠。因为云服务器可以提供高可用性和高安全性的服务,当用户的数据出现问题时,云服务器可以快速地为用户提供数据备份和恢复的服务,保证用户数据的安全性。 此外,云服务器的高可扩展性也可以为用户提供更...
    99+
    2023-10-27
    个人电脑 速度 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作