|每天五分钟,成就redis大神之为什么需要使用redis

文章图片

Redis的由来
什么是redis?它的全名是REmote DIctionary Server(远程字典服务) , 是一个由Salvatore Sanfilippo写的key-value内存型数据库 。 同时它也属于NoSql数据库 , 讲到这里有的人会问什么是NoSql数据库 。
NoSql数据库特点
1.NOSQL数据库不支持SQL语法
2.存储结构都是kv形式(key value)
3.NOSQL的数据库没有一种通用语言 , 每种NOSQL都有自己的语法和api , 以及擅长的业务和场景
比如Hbase、Mongodb等都属于nosql数据库 。
回归正题 , 那redis有什么特点呢?
- Redis不仅仅支持简单的key-value类型的数据 , 同时还提供list , set , zset , hash等数据结构的存储;
- Redis支持数据的持久化 , 例如RDB方式和AOF方式(后面会对此详细说明)
- Redis支持数据备份 , 即master-slave模式的数据备份
- 首先是性能高 , 每秒能达到读110000次 , 写81000次 。
- 提供丰富的数据类型Stirng、List、Set、Hashes等 。
- Redis所有操作都是原子性的 , 要么成功要么失败 , 多个操作也支持事务 。
- 丰富的特性例如支持订阅发布、key过期等 。
对于这个问题就要从数据库的发展史说起了 , 在很久很久以前 , 数据都是以文件的方式保存在磁盘上的 。 如果这时需要读取一行数据需要全量扫描整个磁盘 , 如果数据量小还好 , 数据流一旦变大了 , 因为受到磁盘带宽的影响 , 扫描寻找文件的时间就会变的越来越长 。 大家应该试过在电脑磁盘中搜索某个文件 , 当你磁盘存了一百几十G的文件的时 , 是不是要搜索好久 。 所以为了解决这个问题 , 数据就诞生了 。 数据库采用分治和索引 , 之前数据放在文件里 如果要去磁盘查找文件 需要发生全量扫描 也就是全量io. 数据库的诞生 一定是要避免全量扫描的发生. 所以 数据库设计的时候 设计成了分治的形式. 分成不同的datapage片区 每个片区4k 16k等可以设置. 这样 我保存数据的时候 将数据放到不同的片区. 那什么是索引呢 , 索引就好像一本字典的目录 , 记录着什么数据保存在什么位置 , 每单查找数据如果建立了索引 , 那么可以通过索引直接定位到数据存在哪个片区 , 避免了扫描全部片区 。
既然数据解决了大部分问题了 , 那为什么需要使用redis呢?互联网发展到现在已经是大数据时代了 , 一个热点新闻 , 某电商网站的双十一抢购秒杀 , 春节期间的购票大战等 , 少则几十万 , 多则百万、千万级别的访问流量 。 那瞬间这么多请求直接压到数据库服务器 , 这是要集群多少台数据库服务器才能承受这些访问量 , 估计分分钟挂了 。
这时就需要在用户与数据库之间在加一层缓冲层 , 让请求先访问到redis , 由于redis基于内存的数据库 , 响应速度快 , 网络层使用epoll解决高并发问题 , 单线程模型避免了不必要的上下文切换及竞争条件 。 然后再定时把redis中的数据更新到数据库中 , 保证数据的最终一致性 。
有些人说mysql也有缓存啊 , 在执行sql语句时 , 会将可以作为缓存的sql结果保存在查询缓存中 , 这样当有相同的SQL查询时 , 可以直接从缓存中查询结果 。 但是呢 , 你要知道这个缓存是本地缓存 , 例如mysql数据库A建立了一个sql1的缓存 , 当再次在数据库A上查询sql1这条语句时 , 可以直接从缓存中读取;如果此时mysql数据库做了集群增加了一台mysql数据库B , 那如果sql1被请求到数据库B那么它将无法使用缓存查询 。 而且单表结构或者内容发生变化时 , 这个表的缓存查询也将失效 。
使用redis作为缓存将受这个影响很小 , 因为它是基于键值对保存缓存的 , 只有key对应的缓存内容发生变化 , 才会受到影响 , 其他key对应缓存内容发生变化对其几乎是没有影响的 。
以上内容都属于对redis的背景知识了解 , 后面的文章将对redis的基础知识 , 如何正确使用redis以及redis集群哨兵模式等做讲解
----------------------------End-----------------------------------------
【|每天五分钟,成就redis大神之为什么需要使用redis】你的一个赞一个关注是我创作的动力 , 是我持续输出的能量源泉 , 老铁关注一波吧!
推荐阅读
- 晒晒我家一周的晚餐,每天3个菜,每天都不重样,老公直夸真贤惠
- 河南“网红早餐”,1碗4元,每天卖6大桶,外地人:不再想吃第2次
- 蔬菜|春天适合种的蔬菜,撒一把种子,青菜每天都摘不完
- 教你2种萝卜的新鲜做法,简单又美味,每天不重样!
- 热水一浇,筷子一拌,1分钟出锅,比果冻还甜软,每天吃不够
- 若是每天吃一个“鸡蛋”,提高免疫力,3种错误吃法反而伤身!
- 星尘|每天100吨!你家屋顶上也可能有!快来“狩猎”来自太空的美丽星尘
- 快手、颜值、营养……13份早餐食谱,每天不重样!
- 阿尔茨海默病|阿尔茨海默症患者家属亲述:她五年没冲过厕所,每天和我们吵架
- 朱拉隆功大学|用狗追踪无症状感染者?准确率95%,朱拉隆功大学解锁新成就!
