疯狂的小鸡

Redis入门-大纲

字数统计: 942阅读时长: 3 min
2018/10/05 Share

入门系列主要是为了让看过的人对这门技术有个初步了解,被问及相关问题有话可说。系列的重点在于对概念与理论的一些描述,也会设计一些简单的编码。想要这门技术的大神,光看这个肯定是不够滴~

Redis 是什么?

通常而言目前的数据库分类有几种,包括 SQL/NSQL,关系数据库,键值数据库等等 等,分类的标准也不以,Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和键值数 据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序(SORT) 等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。

Redis的优点

性能极高 – Redis能支持超过 100K+ 每秒的读写频率。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis的缺点

是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。

redis为什么这么快

每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。
三点
(一)纯内存操作
(二)单线程操作,避免了频繁的上下文切换
(三)采用了非阻塞I/O多路复用机制
假设你是一个老师,让30个学生解答一道题目,然后检查学生做的是否正确,你有下面几个选择:

  1. 第一种选择:按顺序逐个检查,先检查A,然后是B,之后是C、D。。。这中间如果有一个学生没做完,就一直等待他做完再检查。这种模式就好比,你用循环挨个处理socket,根本不具有并发能力。—> 阻塞I/O
  2. 第二种选择:你创建30个分身,每个分身检查一个学生的答案是否正确。 这种类似于为每一个用户创建一个进程或者线程处理连接。
  3. 第三种选择,你站在讲台上等,谁解答完谁举手。这时C、D举手,表示他们解答问题完毕,你下去依次检查C、D的答案,然后继续回到讲台上等。此时E又举手,然后去处理E —> I/O多路复用

大纲

此为本redis入门系列大纲。之后的文章将按照下面的大纲一一讲解

还整理了一些资料性内容

思维导图版:
Redis知识点大纲

CATALOG
  1. 1. Redis 是什么?
  2. 2. Redis的优点
  3. 3. Redis的缺点
  4. 4. redis为什么这么快
  5. 5. 大纲