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去秋名山飙车,他们应该是一对好基友,在工作中合理运用两者才能达到更好的效果。

这里写图片描述

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2018年系统架构设计师上午真题

    2018年系统架构设计师上午真题●在磁盘调度管理中,应先进行移臂调度,再进行旋转调度。假设磁盘移动臂位于21号柱面上,进程的请求序列如下表所示。如果采用最短移臂调度算法,那么系统的响应序列应为( )。(1)A.②⑧③④⑤①⑦⑥⑨B.②③⑧④⑥⑨①⑤⑦C.①②③④⑤⑥⑦⑧⑨D.②⑧③⑤⑦①④⑥⑨●某计算机系统中的进程管理采用三态模型,那么下图所示的PCB(进程控制块)的组织方式采用( ),图中( )。…

    2022年6月1日
    47
  • xml文件格式例如以下

    xml文件格式例如以下

    2021年11月28日
    54
  • 图论(二):图的四种最短路径算法

    图论(二):图的四种最短路径算法本文总结了图的几种最短路径算法的实现:深度或广度优先搜索算法,弗洛伊德算法,迪杰斯特拉算法,Bellman-Ford算法1),深度或广度优先搜索算法(解决单源最短路径)从起始结点开始访问所有的深度遍历路径或广度优先路径,则到达终点结点的路径有多条,取其中路径权值最短的一条则为最短路径。下面是核心代码:voiddfs(intcur,intdst){/

    2022年6月4日
    37
  • java方法中的构造方法与普通方法的区别[通俗易懂]

    “java”方法中的构造方法与普通方法的区别是:一、构造方法的名字必须与定义它的类名完全相同;二、构造方法在初始化对象时自动执行;三、构造方法可以被重载;四、构造方法不能被“static”等关键字修饰。

    2022年1月17日
    62
  • 面向对象设计——通用愉快的经历

    面向对象设计——通用愉快的经历

    2022年1月12日
    34
  • HorizontalScrollView 自动滑动「建议收藏」

    HorizontalScrollView 自动滑动「建议收藏」从事开发Android,坑人的就是设备的差异性,相同的功能在相同的生产厂商不同的版本设备,或者是不同的生产厂商的设备实际效果具有差异性,最近在项目里面用到HorizontalScrollView功能,里面有10个按钮,要把其中第四个按钮移动到最左边,这个功能倒是很好实现,方法也很多,使用ScrollTo一类的函数就可以实现,在其他的手机设备上很好,没有问题,但是在索尼SonyErissson这

    2022年7月26日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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