计算机基础--Redis

news2025/1/19 14:15:55

参考文献

  1. https://zhuanlan.zhihu.com/p/599663544

基础知识

1. Redis的数据类型及使用场景

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
在这里插入图片描述

2. Redis为什么快

  • Redis 是基于内存的,绝大部分请求都是纯粹的内存操作。
  • 数据结构以及底层编码方式,Redis 的数据结构是专门进行设计的,数据结构简单,对数据操作也简单。
  • 采用单线程 + IO 多路复用的模型。
    • 单线程避免了不必要的上下文切换和锁竞争
    • IO 多路复用模型,非阻塞 IO。
  • 底层模型不同,它们之间底层实现方式以及客户端之间的通信的应用协议不一样,redis 直接自己构建了 VM 机制。因为一般的系统调用,会浪费一定的时间去移动和请求(基本不用,享受纯内存操作)
  • 计算向数据移动,与 memcache 对比。(在 IO 上优化)
    • 移动数据成本大,移动计算成本小

3. Redis 是单线程还是多线程

无论什么版本,工作线程就是一个,但是在6.x 高版本出现了 IO 多线程

单线程,满足 redis 的串行原子,只不过 IO 多线程后,把 输入/输出 放到更多的线程里去并行。这样做的好处在于:

  • 执行时间缩短,更快
  • 更好地压榨系统及硬件地资源(网卡能够高效的使用)

简单来说,为什么使用多线程?
答:充分利用多核,提高网络吞吐

4. 那么Redis 6.0 之前为什么不使用多线程?

  • Redis 的性能瓶颈不在于 CPU,主要在于内存和网络
    • 如果吞吐量不能满足我们的需求,更推荐的做法是使用分片的方式将不同的请求交给不同的 Redis 服务器来处理,而不是在同一个 Redis 服务中引入大量的多线程操作
  • 单线程编程实现简单并且容易维护,方便开发和调试。并且使用单线程 + 文件事件处理器 也能并发的处理客户端的请求。
  • 多线程会存在死锁、上下文切换等问题,甚至会影响性能

5. 多线程有缺点,为什么又引入了多线程

虽然 Redis 中引入了多线程,但是 Redis 的多线程只是把网络 IO 这类耗时的操作放到多线程中执行,充分利用多核,提高网络吞吐,更好地压榨系统及硬件地资源(网卡能够高效的使用)。执行命令仍然是单线程顺序执行,不需要担心线程安全问题。

6. Redis多线程实现机制在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434870.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用assembly插件对boot项目打zip和war部署包

目录 一、maven-assembly-plugin插件的简单使用 1、什么是assembly? 2. 常见的maven插件 3、如何使用? 二、如何通过assembly打不同的包 三、boot项目如何转成war包部署 背景:之前项目上已经使用了assembly对多个boot项目分别打zip包且…

MATLAB应用笔记

其他 1、NaN值 MATLAB判断数据是否为NaN可以直接使用函数:isnan() 三、数据分析 1、相关性 均值、方差、协方差、标准差、相关系数 mean() %均值 nanmean()%去除NAN值求均值 var() %方差 cov() %协方差 std() %标准差 corrcoef(B,b) %R 相关系数plot()…

[ 云原生 | Docker ] 构建高可用性的 SQL Server:Docker 容器下的主从同步实现指南

文章目录 一、前言二、SQL Server 主从同步的原理介绍三、具体的搭建过程3.1 准备工作3.1.1 卸载旧版本(如果有,可选,非必须)3.1.2 安装 Docker3.1.3 验证本地 Docker 是否安装成功 3.2 创建 Docker 网络3.3 创建主从节点的 SQL S…

部署环境从docker swarm迁移到k8s后kie-server的发布方式变化(二)

正如后来的考虑, 如果外接maven私库照理说是ok的, 这样去掉volume的设计整个流程更加的自动化标准化. 开搞 第一步先部署一个nexus yaml文件如下: apiVersion: v1 kind: Namespace metadata:name: nexus---apiVersion: v1 kind: Service metadata:labels:k8s-app: nexusname…

【数据结构与算法】八大排序

[数据结构与算法]八大排序 数据结构与算法-八大排序排序的概念及其应用排序的概念排序的应用 常见的排序算法实现常见的排序算法插入排序直接插入排序希尔排序(缩小增量排序)希尔排序的时间复杂度希尔排序对插入排序的优化效果 选择排序直接选择排序堆排序向上调整建堆&#xf…

【C语言】从n个字符串中匹配查找abc字符串个数

目录 前言知识点重温1、scanf和scanf_s区别2、指针3、char、char*使用查找字符串收尾前言 这是小5聊的《C语言知识点例子》系列的第四篇文章。 在软件行业已经有快十年,技术虽然一般般,但是足够应付和解决编程入门的相关问题! 都说十年磨一剑,积累到一定经验,是时候发挥自…

数据库基础篇 《1. 概述》

目录 1. 为什么要使用数据库 2. 数据库与数据库管理系统 2.1 数据库的相关概念 2.2 数据库与数据库管理系统的关系 2.3 常见的数据库管理系统排名(DBMS) 2.4 常见的数据库介绍 3. MySQL介绍 3.1 概述 3.2 MySQL发展史重大事件 4. RDBMS 与 非RDBMS 4.1 关系型数据库…

Delphi Web Server 流程分析

通过向导 "Web Server Application" (选择 "Stand-alone GUI Application") 创建一个 WebServer Demo。 主单元代码: ...... private FServer: TIdHTTPWebBrokerBridge; procedure StartServer; ............. Delphi的网络组件是基于INDY的&a…

项目四:无极调光台灯

项目四:无极调光台灯 文章目录 项目四:无极调光台灯一、导入(5分钟)学习目的 二、新授(65分钟)1.预展示结果(5分钟)2.本节课所用的软硬件(5分钟)3.硬件介绍(5分钟)4.图形化块介绍(10分钟)5.单个模块的简单使用(10分钟)6.无极调光台灯编程逻辑…

SQLServer的内存管理架构

内存管理架构说明 一、Windows的虚拟内存管理器二、SQL Server 内存体系结构2.1、传统(虚拟)内存2.2、地址窗口扩展 (AWE) 内存 三、从 SQL Server 2012 (11.x) 开始发生的改变3.1、对内存管理的更改3.2、对…

【网络原理】TCP/IP协议

目录 1.应用层 2.传输层(核心问题) 2.1 UDP协议 2.1.2 UDP的特点 2.1.3 基于UDP的应用层协议 2.2 TCP协议(重点内容) 2.2.1 TCP/IP 协议含义 2.2.2 TCP协议端格式: 2.2.3 TCP的特点 2.3 TCP原理 2.4 确认应…

Fork/Join优化mybatis-plus批量插入性能

最近在项目开发中,遇到需要一次性保存100万数据到数据库中。想到以下几种实现方式: 第一种方案:在mapper文件中,实现批量插入动态SQL语句,采用insert into table_name values(?,?,?,),(?,?,?)拼接SQL方式。 &l…

HTTP中ETag语法及使用实战详解

1.1 ETag 是什么 ETag(Entity Tag)是万维网协议 HTTP 的一部分。它是 HTTP 协议提供的若干机制中的一种 Web 缓存验证机制,并且允许客户端进行缓存协商。这使得缓存变得更加高效,而且节省带宽。如果资源的内容没有发生改变&#x…

电脑网速慢怎么解决?4个方法有效提升电脑网速!

案例:电脑网速慢怎么解决 【谁懂啊!我的电脑网速太慢了!总是上不了网,打开浏览器也是一直在转圈圈!太折磨了!这是为什么呢?谁能帮帮我呀!】 随着互联网的发展和普及,电…

继续学c++

由于c里面有很多和c语言很像的东西,这里就来总结一点不像的或者要注意的,或者是我已经快忘记的; 先来一个浮点型也就是实型类型的总结; 知道浮点型有这两个类型:float和double型; 然后float型占四个字节…

To B第六年,腾讯过分温柔

腾讯做2B,方向是正确的,初心是果决的,行动是温柔的,事实是掉队的。 2018年,率先打出“互联网的下半场属于产业互联网”的大旗,宣布“拥抱产业互联网”,腾讯发力To B业务,绝对是有先发…

HTB-Jarvis

HTB-Jarvis 信息收集80端口 www-data(sqlmap)www-data(myPhpAdmin)www-data -> pepperpepper -> root 信息收集 80端口 目录扫描 我啥也没干咋就被ban了,可能是gobuster流量太大被逮住了。 老老实实等90秒,先从已有的目录收集信息。 phpMyAdmin 4…

X 态及基于 VCS 的 X-Propagation 检测

🔥点击查看精选 IC 技能树系列文章🔥 🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥 📢 声明: 🥭 作者主页:【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#…

Lightroom Classic2022图文安装教程

Lightroom Classic是一款专业的数字照片处理软件,具有数字照片编辑、照片整理和管理、批量处理、智能预览、输出等特点。 该软件适用于摄影师和数字照片后期处理爱好者,可以帮助用户提高处理效率和照片质量。 Lightroom Classic是Adobe公司推出的系列软…

ai智能写作软件哪个好-ai智能写作免费

人工智能自动写作软件 人工智能自动写作软件是如今数字营销领域中备受瞩目的一种工具。无论是网络文章、博客、报告、新闻稿或者其他一些营销内容,人工智能自动写作软件可以以相当高的速度和质量将其生成,从而释放人类营销人员的时间和精力。 尽管自动写…