返回顶部
首页 > 资讯 > 精选 >Redis到底快在哪里
  • 875
分享到

Redis到底快在哪里

2023-06-16 20:06:57 875人浏览 独家记忆
摘要

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

--结束END--

本文标题: Redis到底快在哪里

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

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

猜你喜欢
  • Redis到底快在哪里
    这篇文章主要介绍“Redis到底快在哪里”,在日常操作中,相信很多人在Redis到底快在哪里问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis到底快在哪里”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-16
  • Web前端到底在哪里
    随着互联网的不断发展,Web前端开发在近年来的热度可谓是越来越高,越来越受到各行各业的关注。那么,Web前端到底在哪里呢?首先,Web前端开发早期很多是从事网页设计的人员逐渐递进而来。随着时代的变迁,Web前端开发的工作任务也得到了扩展,现...
    99+
    2023-05-14
  • 谜底揭晓:手机cookie到底存在哪里?
    谜底揭晓:手机cookie到底存在哪里? 随着智能手机的普及和互联网的迅猛发展,手机浏览器上的cookie也成为了广告追踪、用户登录和信息存储的重要工具。然而,手机cookie到底存在哪里,这一问题一直以来都困扰着许多用户和开发...
    99+
    2024-01-19
    手机cookie 存在位置 揭晓谜底
  • golang到底好在哪
    随着互联网的快速发展,越来越多的编程语言被广泛应用于软件开发行业。其中,golang语言由于其高效性、稳定性和可扩展性而备受欢迎。那么,golang到底有哪些优点?为什么golang在当今的软件开发行业中如此受欢迎呢?并发性能卓越Golan...
    99+
    2023-05-15
  • 高级程序员到底强在哪里?
    文末有惊喜哦说起程序员人们的第一印象就是工资高、加班凶、话少钱多头发少。再加上现在科技互联网公司太吃香,bat、华为小米等公司程序员加班情况被广泛传播,程序员用生命在敲代码的印象刻在了很多人的心里。与其它行业一样,凡是有高级和普通,虽然都是...
    99+
    2023-06-02
  • redis到底是什么
    redis是一个基于内存的高性能键值存储系统,具有以下特性:高性能、支持丰富数据结构、分布式、持久化、复制和多种语言支持。应用场景包括缓存、消息队列、会话管理、排行榜和限制速率。 Re...
    99+
    2024-04-02
  • 快速整明白Redis中的整数集合到底是个啥
    整数集合简介 整数集合(intset)是Redis集合数据类型的内部编码之一,当集合数据类型中的元素都是整数并且元素数量较少的时候,Redis就使用整数集合作为内部编码。 整数集合(intset)中可以保存int16_t、int32_t和...
    99+
    2019-08-28
    快速整明白Redis中的整数集合到底是个啥
  • 【Redis】redis-cluster到redis-cluster的快速复制
    现有个需求是redis-cluster到redis-cluster的快速迁移,并且迁移过后两套redis-cluster都要独立使用无依赖 方法一:使用前面redis迁移中的在线迁移工具 r...
    99+
    2024-04-02
  • redis密码在哪里改
    Redis密码可以在Redis的配置文件中进行更改。默认情况下,Redis的配置文件位于Redis安装目录下的redis.conf文...
    99+
    2023-09-07
    redis
  • 浅谈ArrayList和LinkedList到底谁更快
    目录一、ArrayList和LinkedList究竟谁快二、结果三、循环Add四、指定位置Get五、指定位置Add一、ArrayList和LinkedList究竟谁快 在Java中应...
    99+
    2024-04-02
  • J-Hi快速开发平台到快在哪呢
    J-Hi快速开发平台到快在哪呢,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、快速上手,降低学习曲线对于刚刚接触J-Hi的人来说,它上手很容易,我们为每一个功能点都提供了悬浮...
    99+
    2023-06-17
  • Redis Cluster到底会不会丢数据
    这篇文章给大家介绍Redis Cluster到底会不会丢数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 Redis Cluster 会丢数据吗?Redi...
    99+
    2024-04-02
  • 存储Laravel路径:Java到底有多快?
    Laravel是一款流行的PHP框架,其提供了很多方便的工具和库,让开发者可以轻松地构建高质量的Web应用程序。在Laravel中,存储路径是一个非常重要的问题,因为它涉及到程序的性能和稳定性。在这篇文章中,我们将探讨Java与Larav...
    99+
    2023-07-26
    存储 laravel path
  • redis和mysql哪个快
    总体而言,redis 比 mysql 更快,因为它采用键值对数据结构,存储在内存中,适用于存储小型且需要快速检索的数据。mysql 使用关系型数据库模型,存储在硬盘上,适用于存储大型、结...
    99+
    2024-04-08
    mysql 数据访问 键值对
  • MySQL快速迁移到Redis方法
    本文主要给大家介绍MySQL快速迁移到Redis方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL快速迁移到Redis方法吧。 ...
    99+
    2024-04-02
  • Java面试有问必答:二维码和NPM的交集到底在哪里?
    在现代的互联网时代,二维码成为了一种非常方便的扫码方式,而NPM则是一个非常流行的JavaScript包管理器。在Java面试中,有些面试题目就涉及到了二维码和NPM的相关知识。那么,二维码和NPM到底有哪些交集呢?本篇文章将为您一一解答...
    99+
    2023-09-12
    面试 二维码 npm
  • javascript到底存在多久了?
    作为现代Web开发的核心技术之一,JavaScript在过去几十年中已经经历了许多变化和进化。自从Brendan Eich于1995年在Netscape Navigator浏览器中第一次发布它以来,它一直在不断地演变。而它到底存在了多少天呢...
    99+
    2023-05-14
  • redis默认日志存在哪里
    redis默认日志的查看方法:redis在默认情况下,不生成日志文件,可进行配置生成,方法:打开redis的配置文件。找到logfile或直接搜logfile ""。将路径填入logfile后面的引号内,例如:logfi...
    99+
    2024-04-02
  • redis持久化文件在哪里
    redis持久化文件在配置文件中可查看路径。例如:# The filename wherre to dump the DBdbfilename dump.rdb //文件名# The working directory.## The DB ...
    99+
    2024-04-02
  • redis缓存数据在哪里取
    Redis缓存数据可以在以下几个地方进行取出:1. 从Redis服务器直接获取:可以使用Redis的命令行工具或者编程语言提供的Re...
    99+
    2023-09-11
    redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作