加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Redis闲谈(1):构建知识图谱

发布时间:2019-05-11 02:45:58 所属栏目:教程 来源:宜信技术学院
导读:场景:Redis口试 (图片来历于收集) 口试官:我看到你的简历上说你纯熟行使Redis,那么你讲一下Redis是干嘛用的? 小明:(心中窃喜,Redis不就是缓存吗?)Redis首要用作缓存,通过内存高效地存储非耐久化数据。 口试官:Redis可以用作耐久化的存储吗? 小明:
副问题[/!--empirenews.page--]

场景:Redis口试

Redis闲谈(1):构建常识图谱

(图片来历于收集)

  1. 口试官:我看到你的简历上说你纯熟行使Redis,那么你讲一下Redis是干嘛用的? 
  2.  
  3. 小明:(心中窃喜,Redis不就是缓存吗?)Redis首要用作缓存,通过内存高效地存储非耐久化数据。 
  4.  
  5. 口试官:Redis可以用作耐久化的存储吗? 
  6.  
  7. 小明 :嗯...应该可以吧... 
  8.  
  9. 口试官:那Redis怎么举办耐久化操纵呢? 
  10.  
  11. 小明:嗯...不是太清晰。 
  12.  
  13. 口试官:Redis的内存裁减机制有哪些? 
  14.  
  15. 小明:嗯...没相识过 
  16.  
  17. 口试官:我们还可以用Redis做哪些工作?别离操作了Redis的哪个指令? 
  18.  
  19. 小明:我只知道Redis还可以做漫衍式锁、动静行列... 
  20.  
  21. 口试官:好了,我们进入下一个话题... 

思索:很明明,小明同窗在口试进程中关于Redis的示意和答复必定是较量失败的。Redis是我们事变中天天城市行使到的对象,为什么一到口试却酿成了丢分项呢?

作为开拓者,我们风俗了行使大神们已经封装好的对象,以此保障我们可以或许更专注于营业开拓,却不知道这些常用器材的底层实现是什么,因此尽量平常应用起来驾轻就熟,但一到口试照旧无法让口试官面前一亮。

本文总结了一些Redis的常识点,有道理有应用,但愿可以辅佐到各人。

Redis是什么

  • REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储体系。
  • Redis是一个开源的行使ANSI 、C说话编写、遵守BSD协议、支持收集、可基于内存亦可耐久化的日记型、Key-Value数据库,并提供多种说话的API。

这里我引用了Redis教程里对Redis的描写,很官方,可是很尺度。 可基于内存亦可耐久化的日记型、Key-Value数据库。 我以为这个描写很贴切很全面。

1. Redis的行业职位

Redis是互联网技能规模行使最为普及的存储中间件,因超高的机能、美满的文档、多方面的应用手段以及富厚完美的客户端支持在存储方面独当一面,广受好评,尤其以其机能和读取速率而成为了规模中最受青睐的中间件。根基上每一个软件公司城市行使Redis,个中包罗许多大型互联网公司,好比京东、阿里、腾讯、github等。因此,Redis也成为了后端开拓职员必不行少的手艺。

2. 常识图谱

在我看来,进修每一项技能,都必要有一个清楚的脉络和布局,否则你也不知道本身会了哪些、尚有几多没学会。就像一本书,假如没有目次章节,也就失去了魂灵。

因此我试图总结出Redis的常识图谱,也称为脑图,如下图所示,也许常识点不是很全,后续会不绝更新增补。

Redis

本系列文章的常识点也会和这个脑图根基同等,本文先先容Redis的根基常识,后续文章会具体先容Redis的数据布局、应用、耐久化等多个方面。

Redis利益

1. 速率快

作为缓存器材,Redis最广为人知的特点就是快,到底有多快呢?Redis单机qps(每秒的并发)可以到达110000次/s,写的速率是81000次/s。那么,Redis为什么这么快呢?

  • 绝大部门哀求是纯粹的内存操纵,很是快速;
  • 行使了许多查找操纵都出格快的数据布局举办数据存储,Redis中的数据布局是专门计划的。如HashMap,查找、插入的时刻伟大度都是O(1);
  • 回收单线程,停止了不须要的上下文切换和竞争前提,也不存在多历程可能多线程导致的切换而耗损CPU,不消去思量各类锁的题目,不存在加锁、开释锁操纵,没有由于也许呈现死锁而导致的机能耗损;
  • 用到了非阻塞I/O多路复用机制。

2. 富厚的数据范例

Redis有5种常用的数据范例:String、List、Hash、set、zset,每种数据范例都有本身的用处。

3. 原子性,支持事宜

Redis支持事宜,而且它的全部操纵都是原子性的,同时Redis还支持对几个操纵归并后的原子性执行。

4. 富厚的特征

Redis具有富厚的特征,好比可以用作漫衍式锁;可以耐久化数据;可以用作动静行列、排行榜、计数器;还支持publish/subscribe、关照、key逾期等等。当我们要用中间件来办理现实题目的时辰,Redis总能施展出本身的用处。

Redis和Memcache比拟

Memcache和Redis都是优越的、高机能的内存数据库,一样平常我们说到Redis的时辰,城市拿Memcache来和Redis做比拟。(为什么要做比拟呢?虽然是要衬托出Redis有多好,没有比拟,就没有危险~)比拟的方面包罗:

(1) 存储方法

  • Memcache把数据所有存在内存之中,断电后会挂掉,无法做到数据的耐久化,且数据不能高出内存巨细。
  • Redis有一部门数据存在硬盘上,可以做到数据的耐久性。

(2) 数据支持范例

  • Memcache对数据范例支持相对简朴,只支持String范例的数据布局。
  • Redis有富厚的数据范例,包罗:String、List、Hash、Set、Zset。

(3) 行使的底层模子

  • 它们之间底层实现方法以及与客户端之间通讯的应用协议纷歧样。
  • Redis直接本身构建了VM机制 ,由于一样平常的体系挪用体系函数,会挥霍必然的时刻去移动和哀求。

(4) 存储值巨细

  • Redis最大可以存储1GB,而memcache只有1MB。

看到这里,会不会认为Redis出格好,满是利益,十全十美?着实Redis照旧有许多弱点的,这些弱点泛泛我们该怎样降服呢?

Redis存在的题目及办理方案

1. 缓存数据库的双写同等性的题目

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读