zoukankan      html  css  js  c++  java
  • 【转】mysql和redis的一些区别

    转载自:https://m.2cto.com/database/201701/587157.html

    mysql和redis的一些区别。我们知道,mysql是持久化存储,存放在磁盘里面,检索的话,会涉及到一定的IO,为了解决这个瓶颈,于是出现了缓存,比如现在用的最多的 memcached(简称mc)。首先,用户访问mc,如果未命中,就去访问mysql,之后像内存和硬盘一样,把数据复制到mc一部分。

    redis和mc都是缓存,并且都是驻留在内存中运行的,这大大提升了高数据量web访问的访问速度。然而mc只是提供了简单的数据结构,比如 string存储;redis却提供了大量的数据结构,比如string、list、set、hashset、sorted set这些,这使得用户方便了好多,毕竟封装了一层实用的功能,同时实现了同样的效果,当然用redis而慢慢舍弃mc。

    内存和硬盘的关系,硬盘放置主体数据用于持久化存储,而内存则是当前运行的那部分数据,CPU访问内存而不是磁盘,这大大提升了运行的速度,当然这是基于程序的局部化访问原理。

    推理到redis+mysql,它是内存+磁盘关系的一个映射,mysql放在磁盘,redis放在内存,这样的话,web应用每次只访问redis,如果没有找到的数据,才去访问Mysql。

    然而redis+mysql和内存+磁盘的用法最好是不同的。

    前者是内存数据库,数据保存在内存中,当然速度快。

    后者是关系型数据库,功能强大,数据访问也就慢。

    像memcache,MongoDB,Redis,都属于No sql系列。

    不是一个类型的东西,应用场景也不太一样,还是要看你的需求来决定。

    一般来说,写入数据是直接到mysql,读取类的是redis。 这样就说 mysql->redis的同步用的比较多。 mysql作为数据持久化和管理比redis好太多,redis大多只用来做 数据读取缓存、队列、锁、等等的使用。 持久化的话也提供了rdb、aof 保证数据的实时不丢失。 redis和mysql要根据具体业务场景去选型

    mysql:数据放在磁盘

    redis:数据放在内存 redis适合放一些频繁使用,比较热的数据,因为是放在内存中,读写速度都非常快,一般会应用在下面一些场景

    排行榜

    计数器

    消息队列推送

  • 相关阅读:
    MyEclipse10 复制之前的项目部署到tomcat时项目名称对不上,还是复制前的项目名称,哪里修改设置
    11 The superlative
    jQuery Mobile学习笔记
    MySQL基础
    ANGULAR $HTTP请求
    Effective前端5:减少前端代码耦合
    AJAX的简介
    原生ajax
    Ionic实战 自动升级APP(Android版)
    读取数据库信息构建视图字段的备注信息,方便程序代码生成
  • 原文地址:https://www.cnblogs.com/lemonMie/p/9307823.html
Copyright © 2011-2022 走看看