我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Redis到底快在哪里

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Redis到底快在哪里

这篇文章主要介绍“Redis到底快在哪里”,在日常操作中,相信很多人在Redis到底快在哪里问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”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到底快在哪里”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Redis到底快在哪里

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Redis到底快在哪里

这篇文章主要介绍“Redis到底快在哪里”,在日常操作中,相信很多人在Redis到底快在哪里问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis到底快在哪里”的疑惑有所帮助!接下来,请跟着小编一起来学习吧
2023-06-16

Web前端到底在哪里

随着互联网的不断发展,Web前端开发在近年来的热度可谓是越来越高,越来越受到各行各业的关注。那么,Web前端到底在哪里呢?首先,Web前端开发早期很多是从事网页设计的人员逐渐递进而来。随着时代的变迁,Web前端开发的工作任务也得到了扩展,现在的Web前端开发人员需要掌握HTML、CSS、JavaScript等技术,完成网页的设计、布局、功能开发等工作。同时,Web前端需要关注用
2023-05-14

谜底揭晓:手机cookie到底存在哪里?

谜底揭晓:手机cookie到底存在哪里?随着智能手机的普及和互联网的迅猛发展,手机浏览器上的cookie也成为了广告追踪、用户登录和信息存储的重要工具。然而,手机cookie到底存在哪里,这一问题一直以来都困扰着许多用户和开发者。本文将从
谜底揭晓:手机cookie到底存在哪里?
2024-01-19

高级程序员到底强在哪里?

文末有惊喜哦说起程序员人们的第一印象就是工资高、加班凶、话少钱多头发少。再加上现在科技互联网公司太吃香,bat、华为小米等公司程序员加班情况被广泛传播,程序员用生命在敲代码的印象刻在了很多人的心里。与其它行业一样,凡是有高级和普通,虽然都是
2023-06-02

快速整明白Redis中的整数集合到底是个啥

整数集合简介整数集合(intset)是Redis集合数据类型的内部编码之一,当集合数据类型中的元素都是整数并且元素数量较少的时候,Redis就使用整数集合作为内部编码。整数集合(intset)中可以保存int16_t、int32_t和int64_t类型的整数,
快速整明白Redis中的整数集合到底是个啥
2019-08-28

redis密码在哪里改

Redis密码可以在Redis的配置文件中进行更改。默认情况下,Redis的配置文件位于Redis安装目录下的redis.conf文件。要更改Redis密码,可以按照以下步骤进行操作:1. 打开Redis的配置文件:在终端中,使用文本编辑器
2023-09-07

J-Hi快速开发平台到快在哪呢

J-Hi快速开发平台到快在哪呢,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、快速上手,降低学习曲线对于刚刚接触J-Hi的人来说,它上手很容易,我们为每一个功能点都提供了悬浮
2023-06-17

redis缓存数据在哪里取

Redis缓存数据可以在以下几个地方进行取出:1. 从Redis服务器直接获取:可以使用Redis的命令行工具或者编程语言提供的Redis客户端库,连接到Redis服务器,使用GET等命令获取缓存数据。2. 从应用程序代码中获取:在应用程序
2023-09-11

查看ai正片叠底在哪里的方法

这篇文章主要介绍了查看ai正片叠底在哪里的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ai正片叠底在透明度左边的选项里面,其具体查找方法是:首先打开电脑上面的AI软件;
2023-06-06

异步Python比同步Python快在哪里

本篇内容主要讲解“异步Python比同步Python快在哪里”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“异步Python比同步Python快在哪里”吧!你是否听人们说过,异步 Python 代
2023-06-15

云服务器在哪里找到

云服务器是一种虚拟的数据存储服务,通常被用于在云端存储数据。您可以使用互联网连接来访问云服务器并下载所需的文件,或者从云存储服务商的网站上下载文件。您需要在互联网上搜索云服务器,以找到可用的网站。以下是一些找到云服务器的常用网站:Google云存储:您可以在Google上搜索云服务器,以查找云服务器提供商。AmazonWebServices:您可以在Amazon平台上搜索云服务器,以找到可
2023-10-26

钉钉项目在哪里找到

一、钉钉项目的优势简单易用钉钉的界面设计简洁易用,使得使用者能够快速上手。同时,钉钉提供了多种功能和设置,使得使用者能够更好地管理项目。全面协同钉钉提供了强大的全面协同功能,可以实现多方协同、文档共享、任务分配等功能。通过钉钉,企业可以更好地进行团队协作和信息共享,提高工作效率。高效管理钉钉的任务管理和消息提醒功能非常
钉钉项目在哪里找到
2023-10-28

阿里云服务器紧急客服在哪?一文教你快速找到

阿里云作为中国最大的云计算服务提供商,拥有大量的服务器资源,而用户在使用过程中难免会遇到一些紧急问题。本文将详细介绍阿里云服务器紧急客服的寻找方式,帮助用户快速解决问题。一、阿里云服务器紧急客服在线帮助阿里云提供了完善的在线帮助中心,用户可以通过访问阿里云官方网站,然后在顶部导航栏中选择“服务支持”,点击“在线帮
阿里云服务器紧急客服在哪?一文教你快速找到
2023-12-16

能取代90%的人的工作的ChatGpt到底牛在哪?

ChatGPT,一种大型语言模型,以其出色的自然语言处理能力、庞大的知识库和学习适应性而著称。它有潜力取代人类完成许多任务,例如内容创建、信息检索和决策支持,在多个行业引发自动化革命。从客户服务到教育再到医疗保健,ChatGPT的强大功能正在改变工作格局,有可能取代90%的人类工作。然而,随着其不断发展和改进,ChatGPT的影响仍有待观察。
能取代90%的人的工作的ChatGpt到底牛在哪?
2024-04-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录