一、Redis 简介
Redis 是一个速度非常快的非关系型数据库(non-relational database),它可以存储键(key)与 5 种不同类型的值(value)之间的映射(mapping),可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展性能。
1.1 Redis 与其他数据库和软件对比
Redis 不使用表,它的数据库也不会预定义或者强制去要求用户对 Redis 存储的不同数据进行关联。
1.2 Redis 特征
- 键值(key-value)型,value 支持多种不同数据结构,功能丰富
- 单线程,每个命令具备原子性
- 低延迟,速度快(基于内存,IO 多路复用,良好的编码)
- 支持数据持久化
- 支持主从集群、分片集群
- 支持多语言客户端
1.3 Redis 数据结构简介
Redis 可以存储键与 5 种不同数据结构类型之间的映射,这 5 种数据结构类型分别为 STRING(字符串)、LIST(列表)、SET(集合)、HASH(散列)和 ZSET(有序集合)。
STRING
STRING 是 Redis 中最基本的数据类型,Redis 中的 STRING 类型是二进制安全的,即它可以包含任何数据,比如一个序列化的对象甚至一个 jpg 图片,要注意的是 Redis 中的字符串大小上限是 512M。
LIST
LIST 是一个简单的字符串列表,按照插入顺序进行排序,我们可以从 LIST 的头部(LEFT)或者尾部(RIGHT)插入一个元素,也可以从 LIST 的头部(LEFT)或者尾部(RIGHT)弹出一个元素。
HASH
HASH 类似于 Java 中的 Map,是一个键值对集合,在 Redis 中可以用来存储对象。
SET
SET 是 STRING 类型的无序集合,不同于 LIST,SET 中的元素不可以重复。
ZSET
ZSET 和 SET 一样,也是 STRING 类型的元素的集合,不同的是 ZSET 中的每个元素都会关联一个 double 类型的分数,ZSET 中的成员都是唯一的,但是所关联的分数可以重复。
1.4 Redis 通用命令
通用指令是部分数据类型都可以使用的指令,常见的有:
- KEYS:查看符合模板的所有 key,不建议在生产设备上使用
- DEL:删除一个指定的 key
- EXISTS:判断 key 是否存在
- EXIPRE:给一个 key 设置有效期,有效期到期时该 key 会被自动删除
- TTL:查看一个 key 的剩余有效期
通过 help [command] 可以查看一个命令的具体用法,例如: