【数据库基础】Mysql与Redis的区别

news2024/11/14 13:29:58

看到一篇不错的关于“Mysql与Redis的区别”的文章,转过来记录下~

文章目录

    • 一、数据库类型
    • 二、运行机制
    • 三、什么是缓存数据库呢?
    • 四、优缺点比较
    • 五、区别总结
    • 六、数据可以全部直接用Redis储存吗?
    • 参考资料

一、数据库类型

  • Redis:NOSQL,非关系型数据库,也叫缓存数据库。将数据存储在缓存中,这虽然提高了运行效率,但是保存时间却很短。

  • MySQL:关系型数据库,主要是用于存放持久化数据,将数据存储在硬盘中,但这样会造成读取速度慢。

二、运行机制

  • Redis:基于单线程,效率比较高,因为它是基于内存操作,所以CPU不是性能瓶颈,机器内存及宽带才是Redis的瓶颈。

  • MySQL:作为储存的的关系型数据库,弱点就是在每次请求访问数据库时,都存着I/O操作,如果频繁访问数据库会产生如下一些问题:
    – a.会在反复链接数据库上花费大量时间,从而导致运行效率过慢
    – b.反复的访问数据库也会导致数据库的负载过高,此时就引出缓存的概念

三、什么是缓存数据库呢?

缓存就是数据交换的的缓冲区,当浏览器执行请求时,首先会对缓存中进行查找,如果存在就获取;否则就会访问数据库。

缓存的好处:最最最直观好处就是读取速度快。

Redis的数据库就是一款缓存数据库,用于存储使用频繁的数据,这样减少访问数据库的次数,提高运行效率。

四、优缺点比较

在这里插入图片描述
在这里插入图片描述

五、区别总结

1. 数据库类型的区别

  • MySQL是关系型数据库
  • Redis是非关系型数据库,缓存数据库。

2. 作用上的区别

  • MySQL用于持久化存储数据到硬盘,功能强大,但是速度缓慢。
  • Redis用于存储使用较为频繁的数据到缓存中,读取速度快。

3.数据存储的位置区别

  • Mysql:数据存放在磁盘中,
  • Redis:数据存放在内存中。

4.存放的数据类型区别

  • Mysql:数值、日期、具体时间、字符串
  • Redis:String、Hash、List、Set、Zset

5.需求上的区别

mysql和redis因为需求的不同,一般都是配合使用。

  • 需要高性能的地方使用Redis
  • 不需要高性能的地方使用MySQL

存储数据在MySQL和Redis之间做同步。

六、数据可以全部直接用Redis储存吗?

我们将逐个分析:

1.MySQL存储在磁盘里,Redis存储在内存里。

Redis既可以用来做持久存储,也可以做缓存,而目前大多数公司的存储都是MySQL + Redis,MySQL作为主存储,Redis作为辅助存储被用作缓存,加快访问读取的速度,提高性能。

2.Redis存储在内存中,如果存储在内存中,存储容量肯定要比磁盘少很多,那么要存储大量数据,只能花更多的钱去购买内存,造成在一些不需要高性能的地方是相对比较浪费的,所以目前基本都是MySQL(主) + Redis(辅),在需要性能的地方使用Redis,在不需要高性能的地方使用MySQL。

3.MySQL支持sql查询,可以实现一些关联的查询以及统计。

4.Redis对内存要求比较高,在有限的条件下不能把所有数据都放在Redis。

5.MySQL偏向于存数据,Redis偏向于快速取数据。
但是Redis查询复杂的表关系时,不如MySQL,所以可以把热门的数据放Redis,MySQL存基本数据。

参考资料

  • Mysql与Redis的区别

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

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

相关文章

uni-app如何生成骨架屏

骨架屏是页面的一个空白版本,通常会在页面完全渲染之前,通过一些灰色的区块大致勾勒出轮廓,待数据加载完成后,再替换成真实的内容。 参考效果 骨架屏作用是缓解用户等待时的焦虑情绪,属于用户体验优化方案。 生成骨…

Vue、uniApp、微信小程序、Html5等实现数缓存

此文章带你实现前端缓存,利用时间戳封装一个类似于Redis可以添加过期时间的缓存工具 不仅可以实现对缓存数据设置过期时间,还可以自定义是否需要对缓存数据进行加密处理 工具介绍说明 对缓存数据进行非对称加密处理 对必要数据进行缓存,并…

docker/华为云cce 部署nacos 2.3.0 集群模式

镜像地址 https://hub.docker.com/r/nacos/nacos-server 版本 nacos/nacos-server:v2.3.0-slim 关键环境变量 使用mysql数据源 变量值备注MODEcluster启用集群模式MYSQL_SERVICE_DB_NAME数据库名MYSQL_SERVICE_USER数据库用户名MYSQL_SERVICE_PASSWORD数据库密码SPRING_D…

线扫相机品牌汇总(国外+国内)

线扫相机品牌汇总(国外+国内) 行者 ​ 热爱生活 22 人赞同了该文章 线扫相机也叫做线阵相机,和面阵相机一样,都是重要的工业相机。 线扫相机正如其名字那样,拍照时像扫描一样,相机和被拍照物体有相对匀速运动。 Perhaps the most common example of line scan imagin…

【代码随想录算法训练营-第七天】【哈希表】454,383,15,18

454. 四数相加 II 第一遍 思路 想不出来,除了暴力解法,完全想不出来其他解法,看答案思路了…学习了两个新的方法: getOrDefault:返回指定键对应的值,如果不存在,则返回默认值containsKey&…

java Servlet体育馆运营管理系统myeclipse开发mysql数据库网页mvc模式java编程计算机网页设计

一、源码特点 JSP 体育馆运营管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统采用serlvetdaobean,系统具有完整的源代码和数据库,系统主要采用 B/S模式开发。 java Servlet体育馆运营管理系…

Spring 动态数据源事务处理

在一般的 Spring 应用中,如果底层数据库访问采用的是 MyBatis,那么在大多数情况下,只使用一个单独的数据源,Spring 的事务管理在大多数情况下都是有效的。然而,在一些复杂的业务场景下,如需要在某一时刻访问不同的数据库,由于 Spring 对于事务管理实现的方式,可能不能达…

基于YOLOv8全系列【n/s/m/l/x】开发构建道路交通场景下CCTSDB2021交通标识检测识别系统

交通标志检测是交通标志识别系统中的一项重要任务。与其他国家的交通标志相比,中国的交通标志有其独特的特点。卷积神经网络(CNN)在计算机视觉任务中取得了突破性进展,在交通标志分类方面取得了巨大的成功。CCTSDB 数据集是由长沙…

SkyWalking介绍和Docker环境下部署

一、Skywalking概述 1、Skywalking介绍 Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Perfo…

CentOS 7 安装私有平台OpenNebula

目录 一、配置yum源 二、配置数据库MySQL 2.1 安装MySQL 2.2 修改MySQL密码 2.3 创建项目用户和库 三、安装配置前端包 四、设置oneadmin账号密码 五、验证安装 5.1 命令行验证安装 5.2 数据存放位置 5.3 端口介绍 5.4 命令介绍 六、访问 6.1 设置语言 6.2 创建主…

【Python学习】Python学习8-Number

目录 【Python学习】Python学习8-Number 前言在变量赋值时被创建Python支持四种不同的数据类型整型(Int)长整型(long integers)浮点型(loating point real values)复数(complex numbers) Python Number 类型转换Python math 模块、cmath 模块Python数学函数Python随…

每日一题——LeetCode1021删除最外层括号1047消除字符串相邻重复字符串

这两道题基本上来说是差不多的,一个匹配并删除字符串中的( ) 一个匹配并删除字符串中相邻重复的元素,其实都是用到栈这种数据结构,通过匹配不同的条件使用入栈出栈操作保存或删除目标元素来实现。 1021.删除最外层括号 var removeOuterParent…

零售EDI:Petco EDI对接指南

Petco 始于1965年,是一家美国宠物零售商,提供各种宠物产品和服务以及某些类型的活体小动物。起初Petco只是一家邮购兽医用品公司,后发展为一家成熟的宠物食品和供应链的公司。Petco与其供应商之间是如何传输业务数据的呢? 通过EDI…

Qt QLineEdit文本框控件

文章目录 1 属性和方法1.1 占位字符串1.2 对齐方式1.3 回显模式1.4 读写控制1.5 格式控制1.6 信号和槽 2 实例2. 布局2.2 代码实现 QLineEdit 是Qt 中的文本框,准确地说是单行文本框,通常用于接受用户的输入。 比如用户输入用户名、密码等,都…

Windows安装Docker运行中间件(详细)

1、Docker Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接…

人类的失误、错误与机器的失误、错误

人类的失误和错误是指人类在认知、判断、决策和行动过程中出现的错误或差错。这些错误可能是由于认知偏差、信息不完全、判断错误、行为失控等原因造成的。人类的失误和错误是不可避免的,而且在很多领域都有广泛的存在,包括工作、学习、社交、交通等方面…

深入理解Java源码:提升技术功底,深度掌握技术框架,快速定位线上问题

为什么要看源码: 1、提升技术功底: 学习源码里的优秀设计思想,比如一些疑难问题的解决思路,还有一些优秀的设计模式,整体提升自己的技术功底 2、深度掌握技术框架: 源码看多了,对于一个新技术…

线性代数 --- 为什么LU分解中的下三角矩阵L的主对角线上都是1?

为什么LU分解中的下三角矩阵L的主对角线上都是1? 笔者的一些话: 为什么LU分解中L矩阵的主对角线上都是1?因为最近一段时间在研究LU分解的编程实现,这个问题也就时不时的从我脑子里面冒出来。但大多时候都是一闪而过,没有太在意。…

IIC Master 设计实现

写个IIC的主机来玩一玩。 仅100M时钟输入SCL波形工整,任意两个上升沿之间均为整数倍周期,占空比50%发送数据时SDA严格对其到SCL低电平正中间尽可能少的状态机不浪费资源数据逻辑和时序逻辑分离 接口设计中,我的思路是将数据与时序分离开&am…

数据结构-测试5

一、判断题 1.二叉树只能用二叉链表表示(F) 二叉树的存储结构有两种,顺序存储结构和链式存储结构 2. 装填因子是散列表的一个重要参数,它反映散列表的装满程度。(T) 装填因子越小,发生冲突的可能性越小 3. 在任何情况…