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和内存+磁盘的用法最好是不同的。

 
时间: 2024-10-06 16:06:49

Redis等缓存数据库为什么访问会比较快?的相关文章

Redis 开源缓存数据库

Redis 是一个开源的,高性能的 key-value 系统,可以用来缓存或存储数据.Redis 数据可以持久化,并且支持多种数据类型:字符串(string),列表 (list),哈希(hash),集合(set)和有序集合(sorted set).能够对关系型数据库起到很好的补充作用.它还提供了多种客户端 Python,Ruby,Erlang,PHP ,可以方便调用. 持久化: Redis 是一种内存数据库(跟 memcache 类似),在数据存取效率方面很优秀,由于内存中的数据时刻面临丢失的危

redis缓存数据库

缓存数据库介绍 redis操作 缓存数据库介绍 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题. NoSQL数据库的

缓存数据库redis

什么是Redis? Redis是一个TCP服务器,支持请求/响应协议. 在Redis中,请求通过以下步骤完成: 客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应. 服务器处理命令并将响应发送回客户端. Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库,缓存和消息中间件.它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询,

Spring Boot 整合Redis 实现缓存

本文提纲 一.缓存的应用场景 二.更新缓存的策略 三.运行 springboot-mybatis-redis 工程案例 四.springboot-mybatis-redis 工程代码配置详解 运行环境: Mac OS 10.12.x JDK 8 + Redis 3.2.8 Spring Boot 1.5.1.RELEASE 一.缓存的应用场景 什么是缓存? 在互联网场景下,尤其 2C 端大流量场景下,需要将一些经常展现和不会频繁变更的数据,存放在存取速率更快的地方.缓存就是一个存储器,在技术选型

基于redis缓存数据库实现lnmp架构高速访问

how-缓存加速 使用nosql数据库: 如redis,mongodb,memcache what-redis redis 是一个高性能的 key-value 数据库. 1) redis 的出现,很大程度弥补了memcached 这类 key-value 存储的不足(只能存入内存). 2)它支持的数据类型比memcache多,包括了 Python,Ruby,Erlang,PHP 客户端... 3)Redis 的所有数据都是保存在内存中,两种同步模式 A>半持久化模式:RDB(全量同步) i>R

LAMP+Redis缓存数据库整合

LAMP在企业生产环境中,除了将MYSQL单独部署在其他服务器.由于MYSQL数据库压力会很大,还会对MYSQL实现主从复制及读写分离,同时会对PHP网站进行调优,通常PHP的优化手段包括:PHP代码本身优化.PHP配置文件优化.为PHP添加缓存模块,将PHP网站数据存入缓存等. 为了减轻MYSQL数据库的压力,这时就用到了Redis缓存数据库服务, LAMP+Redis工作机制:用户通过浏览器访问LAMP网站,并以用户名和密码登录到网站,默认Redis缓存中没有该用户名和密码对应列表,PHP程

Python基础16 - RabbitMQ队列、Redis缓存数据库

@@@文章内容参照老男孩教育 Alex金角大王,武Sir银角大王@@@ RabbitMQ队列 下载安装http://www.rabbitmq.com/install-windows.html RabbitMQ 教程官网:http://www.rabbitmq.com/getstarted.html RabbitMQ:erlang语言 开发的. Python中连接RabbitMQ的模块:pika .Celery(分布式任务队列) .haigha可以维护很多的队列 几个概念说明: Broker:简单

使用redis作为缓存,数据还需要存入数据库中吗?(转)

转自https://blog.csdn.net/wypersist/article/details/79955704 使用redis作为缓存,数据还需要存入数据库中吗? 我的答案是: 1redis只是缓存,不是数据库如mysql,所以redis中有的数据库,mysql中一定有. 2用户请求先去请求redis,如果没有,再去数据库中去读取. 3redis中缓存一些请求量比较大的数据(这些缓存数据,mysql中一定也是有的),没必要所有数据都缓存到redis中. 5之所以从缓存中拿数据会快,是因为缓

用Redis作为Mysql数据库的缓存【转】

用Redis作Mysql数据库缓存,必须解决2个问题.首先,应该确定用何种数据结构存储来自Mysql的数据:在确定数据结构之后,还要考虑用什么标识作为该数据结构的键. 直观上看,Mysql中的数据都是按表存储的:更微观地看,这些表都是按行存储的.每执行一次select查询,Mysql都会返回一个结果集,这个结果集由若干行组成.所以,一个自然而然的想法就是在Redis中找到一种对应于Mysql行的数据结构.Redis中提供了五种基本数据结构,即字符串(string).列表(list).哈希(has