入门系列主要是为了让看过的人对这门技术有个初步了解,被问及相关问题有话可说。系列的重点在于对概念与理论的一些描述,也会设计一些简单的编码。想要这门技术的大神,光看这个肯定是不够滴~
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个学生解答一道题目,然后检查学生做的是否正确,你有下面几个选择:
- 第一种选择:按顺序逐个检查,先检查A,然后是B,之后是C、D。。。这中间如果有一个学生没做完,就一直等待他做完再检查。这种模式就好比,你用循环挨个处理socket,根本不具有并发能力。—> 阻塞I/O
- 第二种选择:你创建30个分身,每个分身检查一个学生的答案是否正确。 这种类似于为每一个用户创建一个进程或者线程处理连接。
- 第三种选择,你站在讲台上等,谁解答完谁举手。这时C、D举手,表示他们解答问题完毕,你下去依次检查C、D的答案,然后继续回到讲台上等。此时E又举手,然后去处理E —> I/O多路复用
大纲
此为本redis入门系列大纲。之后的文章将按照下面的大纲一一讲解
- Redis入门-大纲
- Redis入门-基本数据类型
- Redis入门-高级数据类型
- Redis入门-管道与事务
- Redis入门-持久化
- Redis入门-过期策略与内存淘汰机制
- Redis入门-定时函数serverCron
- Redis入门-应用场景
- Redis集群-集群基础知识
- Redis集群-主从模型
- Redis集群-Sentinal
- Redis集群-Cluster功能简述
- Redis集群-Cluster实现原理
- Redis集群-集群一致性问题
- Redis集群-3+3集群搭建实例
还整理了一些资料性内容
思维导图版: