redis 和Mysql 的一些 区别[通俗易懂]

redis 和Mysql 的一些 区别[通俗易懂]说Redis的缓存机制实现之前,我想先回顾一下mysqlmysql存储在哪儿呢?以windows为例,mysql的表和数据,存储在data目录下frmibd后缀的文件中mysql存储在机器/服务器的硬盘中所以mysql读写数据都需要从磁盘读取。磁盘的容量,带宽的大小就影响了网站的访问速度,读取的方式,也就是sql语句,次数和效率也会影…

大家好,又见面了,我是你们的朋友全栈君。

Redis 的缓存机制实现之前,我想先回顾一下 mysql

redis 和Mysql 的一些 区别[通俗易懂]

mysql 存储在哪儿呢?

windows 为例,mysql 的表和数据,存储在data 目录下frm ibd 后缀的文件中

mysql存储在机器/服务器的 硬盘中

所以 mysql 读写数据都需要从磁盘读取 。磁盘的容量,带宽的大小就影响了网站的访问速度,读取的方式,也就是 sql 语句,次数和效率也会影响读取效率。

当访问量和并发很大的时候,mysql 就撑不住了,据统计,mysql的连接池并发数max为 500-1000

这时,我们可以通过 慢查询优化cdn ,页面静态化, nginx 负载均衡策略 ,甚至 分布式数据库 来进行 sql优化 ,当然也可以使用 高速缓存,比如 redis


redis 和Mysql 的一些 区别[通俗易懂]

Redis - 高并发,内存高速cache ,处理读写io的高并发容忍。

redis 通常被使用来将那些经常被访问的内容缓存在内存中。

很多人谈到redis ,哦,k-v 存储数据库啊, 速度快啊!为什么快啊? 人家存内存啊,能不快吗?关键人家还支持复杂的数据结构,list 什么的,很多高并发场景都可以使用。 比如:电商秒杀场景的解决策略与具体原理

remote dictionary server (远程数据服务) 内存高速缓存数据库 数据模型为 k-v 也就是redis 的一种最经常使用的数据类型 string

k-v 的算法时间复杂度 可是 0(1) 而mysql 的查询是基于表关联技术 ,这就是nosql的优势所在。

附上redis 和memcahe 的比较

  1. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  2. Redis支持master-slave(主-从)模式应用,高可用的cache系统,支持集群服务器之间数据同步。

  3. Redis支持数据持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

  4. Redis单个value的最大限制是1GB,(k-v),memcached只能保存1MB的数据。(k:250kb v:1mb)

redis 比sql 到底快多少呢?
1 从存储媒介来看,内存比磁盘的读取速度 hash查找是100w/s 的数量级

2 多路复用io (todo)


redis 和mysql 绝对不是竞争的关系,就好像你拿485和86去秋名山飙车,他们应该是一对好基友,在工作中合理运用两者才能达到更好的效果。

这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148886.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • STM32F103C8T6最小系统

    STM32F103C8T6最小系统单片机最小系统一般有晶振电路、电源电路、复位电路以及调试电路组成。本文以STM32F103C8T6为例,介绍最小电路的设计和要注意的问题。

  • 领域建模与数据库建模[通俗易懂]

    首先两者比较: 我下面是引用的别人的文章,并且感觉有句话很好,不过除了这句话其它的话都不是很好,哈哈:有些人就把问题归结于Java语言本身,睡不着觉怪床歪。 我们知道:一个软件从无到有需要经过如下几个阶段:分析、设计、编程、调试、部署和运行。   编程阶段我们通常使用Java/.NET这样面向对象语言工具,可以带来很多设计上的好处,但是也存在一个奇怪的现象:很多程序员虽然在

  • 微信oauth获取用户的信息页面授权

    微信oauth获取用户的信息页面授权

  • linux获取root权限命令_linux最高权限获取命令

    linux获取root权限命令_linux最高权限获取命令Linux上一切皆文件,不管什么程序,读取文件就能获取一个UUID.Linux内核提供有UUID生成接口:cat/proc/sys/kernel/random/uuid  获取系统uuiddmidecode-ssystem-uuid|tr’A-Z”a-z’  转载于:https://www.cnblogs.com/navysummer/…

  • 零阶矩、一阶矩、二阶矩、三阶矩

    参考:Moment(mathematics)-Wikipedia此处截取其中的一段:Inmathematics,amomentisaspecificquantitativemeasure,usedinbothmechanicsandstatistics,oftheshapeofasetofpoints.Ifthepointsrepre

  • 软件测试面试的自我介绍模板(无经验者面试软件测试)

    面试官,你好,我叫Jayce,16年本科毕业,从事软件测试将近3年的时间。在此期间做过一些项目也积累过一些经验,能够独立地完成软件测试流程的一个工作。我之前主要做过的是功能测试,web自动化测试、app专项测试、接口测试、也有用过Jmeter做过一些性能方面的测试。我对于缺陷管理工具比如禅道,版本控制器git与svn能够熟悉应用。数据库、linux、Fiddler、Jmeter这些应用也比较熟悉。…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号