Redis中常见的数据类型有哪些?
重要内容
Redis 常见的数据结构主要有五种,这五种类型分别为:String(字符串)、List(列表)、Hash(哈希)、Set(集合)、Zset(有序集合,也叫sorted set),还有一些特殊用途、消息与流处理相关的数据类型
扩展知识
基础数据结构详解
String
最基本的数据类型,支持字符串、整数、浮点数及二进制数据,最大容量 512MB
下图是一个String类型的实例,其中键为hello,值为world
命令使用
| 命令 | 简述 | 使用 |
|---|---|---|
| GET | 获取键对应的值 | GET key |
| SET | 设置键值对,可附加 EX(秒级过期)等参数 | SET key value |
| DEL | 删除对应键的值 | DEL key |
| INCR、DECR | 将键存储的值加/减1 | INCR/DECR key |
| INCRBY、DECRBY | 将键存储的值加/减上整数 | INCRBY/DECRBY key amount |
| APPEND | 向字符串尾部追加内容 | APPEND key value |
| MGET | 批量获取多个键的值 | MGET key1 key2... |
List
双向链表,按插入顺序排序,支持头尾操作
下图是一个List类型的实例,其中键为 list-key,值为 item 列表
命令使用
| 命令 | 简述 | 使用 |
|---|---|---|
| LPUSH/RPUSH | 从头部/尾部插入元素 | LPUSH/RPUSH key value |
| LPOP/RPOP | 从头部/尾部弹出元素 | LPOP/RPOP key |
| LRANGE | 获取列表在给定范围上的所有值 | LRANGE key 0 -1 |
| LINDEX | 通过索引获取列表中的元素(也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推) | LINDEX key index |
Set
无序且元素唯一,支持集合运算(交集、并集、差集)
下图是一个Set类型的实例,其中键为 set-key,值为 item 集合
命令使用
| 命令 | 简述 | 使用 |
|---|---|---|
| SADD | 向集合添加一个或多个成员 | SADD key value |
| SCARD | 获取集合的成员数 | SCARD key |
| SMEMBERS | 返回集合中的所有成员 | SMEMBERS key member |
| SISMEMBER | 判断 member 元素是否是集合 key 的成员 | SISMEMBER key member |
Hash
键值对集合,适合存储对象,支持部分字段操作
下图是一个Hash类型的实例,其中键为 hash-key,值为 sub-key 与 value 的键值对
命令使用
| 命令 | 简述 | 使用 |
|---|---|---|
| HSET | 设置哈希表中字段的值 | HSET key field value |
| HGET | 获取字段值 | HGET key field |
| HGETALL | 获取所有字段和值 | HGETALL key |
| HDEL | 删除指定字段 | HDEL key field |
Zset
元素唯一且按 score 排序,底层使用跳跃表实现高效范围查询
下图是一个Zset类型的实例,其中键为 zZset-key,值为 member 与 score 的键值对
命令使用
| 命令 | 简述 | 使用 |
|---|---|---|
| ZADD | 添加元素并指定排序权重 | ZADD key score member |
| ZRANGE | 根据元素在有序集合中所处的位置,从有序集合中获取多个元素 | ZRANGE zset-key 0-1 withscores |
| ZREM | 删除元素 | ZREM key member |