Redis的6种数据类型

Redis 是一种基于内存的数据库,并且提供一定的持久化功能,它是一种键值(key-value)数据库,使用 key 作为索引找到当前缓存的数据,并且返回给程序调用者。

当前的 Redis 支持 6 种数据类型,它们分别是字符串(String)、列表(List)、集合(set)、哈希结构(hash)、有序集合(zset)和基数(HyperLogLog)。

使用 Redis 编程要熟悉这 6 种数据类型,并且了解它们常用的命令。Redis 定义的这 6 种数据类型是十分有用的,它除了提供简单的存储功能,还能对存储的数据进行一些计算。

比如字符串可以支持浮点数的自增、自减、字符求子串,集合求交集、并集,有序集合进行排序等,所以使用它们有利于对一些不太大的数据集合进行快速计算,简化编程,同时它也比数据库要快得多,所以它们对系统性能的提升十分有意义。

表 1 列出了关于 Redis 的 6 种数据类型的基本描述。

表 1 Redis的6种数据类型说明
数据类型 数据类型存储的值 说 明
STRING(字符串) 可以是保存字符串、整数和浮点数 可以对字符串进行操作,比如增加字符或者求子串:如果是整数或者浮点数,可以实现计算,比如自增等
LIST(列表) 它是一个链表,它的每一个节点都包含一个字符串 Redis 支持从链表的两端插入或者弹出节点,或者通过偏移对它进行裁剪;还可以读取一个或者多个节点,根据条件删除或者查找节点等
SET(集合) 它是一个收集器,但是是无序的,在它里而每一个元素都是一个字符串,而且是独一无二,各不相同的 可以新增、读取、删除单个元素:检测一个元素是否在集合中;计算它和其他集合的交集、并集和差集等;随机从集合中读取元素
HASH(哈希散列表) 
它类似于 Java 语言中的 Map,是一个键值对应的无序列表
可以増、删、査、改单个键值对,也可以获取所有的键值对
ZSET(有序集合) 它是一个有序的集合,可以包含字符 串、整数、浮点数、分值(score),元素 的排序是依据分值的大小来决定的 可以增、删、査、改元素,根据分值的范围或者成员 來获取对应的元索
HyperLogLog(基数) 它的作用是计算重复的值,以确定存储的数量 只提供基数的运算,不提供返回的功能
这个表格粗略描述了 Redis 的 6 种数据类型,并简要说明了它们的作用,未来我们还会详细介绍它们的数据结构和常用 Redis 命令。此外,Redis 还支持一些事务、发布订阅消息模式、主从复制、持久化等作为 Java 开发人员需要知道的功能。