当前的 Redis 支持 6 种数据类型,它们分别是字符串(String)、列表(List)、集合(set)、哈希结构(hash)、有序集合(zset)和基数(HyperLogLog)。
使用 Redis 编程要熟悉这 6 种数据类型,并且了解它们常用的命令。Redis 定义的这 6 种数据类型是十分有用的,它除了提供简单的存储功能,还能对存储的数据进行一些计算。
比如字符串可以支持浮点数的自增、自减、字符求子串,集合求交集、并集,有序集合进行排序等,所以使用它们有利于对一些不太大的数据集合进行快速计算,简化编程,同时它也比数据库要快得多,所以它们对系统性能的提升十分有意义。
表 1 列出了关于 Redis 的 6 种数据类型的基本描述。
数据类型 | 数据类型存储的值 | 说 明 |
---|---|---|
STRING(字符串) | 可以是保存字符串、整数和浮点数 | 可以对字符串进行操作,比如增加字符或者求子串:如果是整数或者浮点数,可以实现计算,比如自增等 |
LIST(列表) | 它是一个链表,它的每一个节点都包含一个字符串 | Redis 支持从链表的两端插入或者弹出节点,或者通过偏移对它进行裁剪;还可以读取一个或者多个节点,根据条件删除或者查找节点等 |
SET(集合) | 它是一个收集器,但是是无序的,在它里而每一个元素都是一个字符串,而且是独一无二,各不相同的 | 可以新增、读取、删除单个元素:检测一个元素是否在集合中;计算它和其他集合的交集、并集和差集等;随机从集合中读取元素 |
HASH(哈希散列表) | 它类似于 Java 语言中的 Map,是一个键值对应的无序列表 |
可以増、删、査、改单个键值对,也可以获取所有的键值对 |
ZSET(有序集合) | 它是一个有序的集合,可以包含字符 串、整数、浮点数、分值(score),元素 的排序是依据分值的大小来决定的 | 可以增、删、査、改元素,根据分值的范围或者成员 來获取对应的元索 |
HyperLogLog(基数) | 它的作用是计算重复的值,以确定存储的数量 | 只提供基数的运算,不提供返回的功能 |