Redis是什么,redis简述简单了解
Redis是什么?
或者说Redis是怎么出现的?
一、压力山大的MySQL
在redis没出现之前,Mysql肩负着数据存储的重担。慢慢随着数据量和访问量的剧增,Mysql性能开始显著下降。
又因为大部分请求访问都是读数据操作,而且经常重复性的查询同一个东西,导致Mysql浪费大量的时间去进行磁盘I/O(查询磁盘中的对应数据)。
后有人提出可以效仿CPU的缓存机制,给Mysql也加一个缓存,于是乎redis应声而出。
二、数据请求流程
首先应用程序发送请求到Mysql,Mysql查找完成之后再将结果返回给应用程序。之后应用程序在redis里做一个缓存,把本次查询到的数据缓存一份放进redis里,这样以后再查询同一个东西时,会对redis先进行读数据操作,redis找到这条数据就直接返回给应用程序。
如果找不到的话,返回null,这时应用程序没拿到想要的东西,就会去找Mysql要数据。这个过程大大的减轻了Mysql的压力,这就是redis,为了方便使用,redis支持很多数据结构的存储。
就是说在redis出现之前一直是Mysql一个数据库在工作,redis出现后是两个数据库(redis与Mysql)分工合作,大大的提供了数据访问层的效率。
三、Redis数据库?Mysql数据库?
这俩数据库最大的区别就是:redis将数据存到内存中,性能高、容量小。Mysql将数据存到磁盘里,性能低、容量大。这俩哥们儿同时使用,正好相互弥补各自的缺点,优势互补。
于是几乎Redis所有的问题都是跟Mysql优势互补的过程中产生的。几乎Redis所有的问题解决策略、解决方法,都是为了和Mysql优势互补。
四、Redis能存哪些类型的数据?
Redis数据库类型及场景:
- 字符串String类型:比较常用,普通字符串
- 哈希hash类型:比较适合存储对象
- 列表list类型:按照插入数据的顺序排序,支持重复元素的存储
- 无序集合set类型:存储无序集合,不支持存储重复元素
- 有序集合zset类型:集合中的每一个元素都会关联一个score,redis可以通过这个score实现对集合元素的升序排序,而且不支持存储重复元素。
五、Redis的经典问题
穿透(应用程序无结果请求的查询)
redis很好的解决了应用程序重复查询,减轻Mysql压力的操作。然而并不是所有的查询都是有结果的,一旦出现应用程序发出没有结果的请求时,虽然查不到结果,但Mysql还是会浪费时间去对此请求进行磁盘I/O操作,就是如此的包容且宠爱。因为没有结果返回给应用程序,所以redis就不能进行缓存,redis不能进行缓存,当下次这个请求还来的时候,Mysql还是会全盘检索,循环往复,直至再次拖垮Mysql,这样的话就造成了redis的缓存穿透。这样的结果redis能答应吗,不能答应,解决方法就是使用布隆过滤器来进行辅助工作了,为什么要用布隆过滤器呢,因为你可以完全信任布隆。击穿(应用程序热点请求的查询)
热点数据到了过期时间被redis删除,应用程序向redis要数据时发现没有,只能直接向Mysql发送请求,让Mysql进行查询操作,因为是热点数据,所以访问量一般不会太小,短时间内Mysql的性能压力一下子大了起来,造成速度下降卡顿等性能问题。这个过程就是redis击穿现象,如果不及时处理,很有可能造成雪崩,导致Mysql瘫痪。雪崩(应用程序大批量的请求查询)
redis中大批量数据同时过期被redis主动同时删除,这时应用程序发送请求,出现更大一波数据流量访问,直接访问Mysql,拖垮MySQL性能,直接将MySQL干趴,这种现象叫做雪崩。解决方法:将键值的过期时间设置成随机均匀分布,并将热点数据设置永不过期。
六、Redis的持久化策略
redis持久化策略
- redis,一个基于内存的key-value储存库,因为将数据存在内存,故而性能比关系型数据库强得多,但也因为其数据是存在内存中,这也意味着一旦计算机宕机或者断电,那将会失去已经存储的数据,而关系型数据库Mysql的持久性,它就不会出现这样的情况,因为Mysql数据是直接存在磁盘里。因此我们需要对redis进行持久化操作,让redis的数据变得更持久,弥补这一缺点,此过程,redis提供了两个持久化策略:RDB与AOF
- 操作目标就是将宕机停电易丢失的部分内存数据,转存到能够永久存储的磁盘设备上。
注:本文仅为Redis简单了解。
Redis是什么,redis简述简单了解相关推荐
- Redis的安装配置及简单集群部署
最近针对中铁一局项目,跟事业部讨论之后需要我们的KF平台能够接入一些开源的数据库,于是这两天研究了一下Redis的原理. 1. Redis的数据存储原理及简述 1.1Redis简述 Redis是一个基 ...
- python使用redis在实际场景使用_Python使用Redis实现作业调度系统(超简单)
概述 Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁 ...
- 使用Servlet 3.0,Redis / Jedis和CDI的简单CRUD –第1部分
在这篇文章中,我们将构建一个简单的用户界面. 数据将存储在Redis中. 为了与Redis交互,我们将使用Jedis库. CDI用于Depedency Injection,而Servlet 3.0用于 ...
- 使用Servlet 3.0,Redis / Jedis和CDI的简单CRUD –第2部分
在本文中,我们将重点介绍CDI和Servlet 3.0. 您可以在此处看到第1部分. 让我们从CDI开始. 当我开始撰写源自该系列的文章时,我并没有考虑撰写CDI. 真诚地说,我以前从未使用过. 这篇 ...
- python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装 安装及简单使用:https://github.com/andymccurdy/ ...
- Redis在SpringBoot中的简单应用
一.Redis是什么? 1 redis的由来: Salvatore • Sam Philippe对于公司的系统的性能不满意,亲手撸了一个缓存数据库,旨在提高其性能,就是现在的redis. 2 简单介绍 ...
- Redis 9 种数据结构简述
目录 一.简介 二.Redis 内部编码 三.5种最基本数据结构 1. String(字符串) 1.1 内部编码 1.2 应用 1.3 数据结构 1.3.1 什么是简单动态字符串(SDS) 1.3.2 ...
- Redis的Windows安装和简单使用
Redis的安装和简单使用 一.Redis的windows安装 二.Redis的启动和简单使用 2.1我们启动一下服务器端和客户端 2.2 redis的简单操作 2.3 如果你要设置密码,或者修改端口 ...
- springboot获取sessionid_Spring Boot 整合Redis, 用起来真简单!
点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长- 作者:java_老男孩 https://blog.51cto.com/14230003/2 ...
最新文章
- ActiveMQ在C#中的应用
- gsoap 学习 1-自己定义接口生成头文件
- 那天有个小孩跟我说LINQ(五)转载
- D3引擎用正则运算的方式,实现智能设备APP消息推送
- 面试官:聊一下你对MySQL索引实现原理?
- #530. 「LibreOJ β Round #5」最小倍数 二分 + 数论
- jquery报变量没定义错误的原因
- webService调用模式比较
- 「懒惰的美德」我用 python 写了个自动生成给文档生成索引的脚本
- 台达A2/B2伺服电机编码器改功率 台达A2/B2伺服电机编码修改
- 最新自动发卡网源码V7.0
- 关于quartus ii 破解失败的问题
- 计算机发展英文文献,计算机技术发展英文参考文献 计算机技术发展论文参考文献哪里找...
- windows 文件夹正在使用 “操作无法完成,因为其中的文件夹或文件已在另一程序中打开“ 解决办法
- JS中根据入职时间计算工龄
- 如何免费使用阿里云服务器?【一篇文章教会你,真香】
- oracle10g dblink优化,dblink如果很慢可以用这种方式优化
- 美团再杀入共享充电宝的阳谋
- linux上运行gfortran,linux – gfortran:在64位系统中编译32位可执行文件
- 《交互式程序设计 第2版》一1.2 交互领域中的编程
热门文章
- 自助收银、自助点餐等智能产品落地应用,助力智慧零售
- 仿乐享微信源码免费分享viicms
- HCIP---企业网的架构
- 静态HTML网页设计作品——电影介绍(11页) 学生HTML个人网页作业作品下载
- Tips-App瘦身的几点实践
- 冬奥会区块链亮点:数字雪花、冰墩墩NFT
- tp5 mysql读写分离_tp5主从数据库设置读写分离
- 学生赚源码 php,[精仿]全网最新高仿米赚APP、学生赚APP,带PHP后台+APP源码+全开源...
- vim编辑文件时[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
- Java 培训班出来之后的面试经历,很难!!