游乐游手机版
首页/数据库/文章详情

Redis 五种核心数据类型详解与命令示例

时间:2026-09-01 06:18
Redis 提供五种核心数据类型用于存储不同结构的 Value。本文逐一解析 String、Hash、List、Set 与 Zset 的特性、容量限制与常用命令,并给出典型使用场景与选型建议,帮助开发者快速掌握 Redis 数据结构并做出合理设计。

Redis 以 Key-Value 形式存储数据,其 Value 支持多种数据结构以适配不同业务场景。本文按类型梳理 String、Hash、List、Set 与 Zset 的核心特性、容量上限与常用命令,并结合示例说明适用场景,帮助你在实际开发中快速选型与正确使用。

String 字符串:基础存储与批量操作

String 是 Redis 最基本的数据类型。字符串是一组字节,在 Redis 中具有二进制安全(binary safe)特性,长度已知且不依赖终止字符,单个值最多可存储 512 MB 内容。二进制安全意味着操作函数仅按二进制数据存取,不关心具体字符串格式,从而避免数据损坏。

使用 SET 存储单个键值,GET 读取对应值:

127.0.0.1:6379> set website "www.biancheng.net"
OK
127.0.0.1:6379> get website
"www.biancheng.net"

需要一次性写入或读取多个键时,可使用 MSET 与 MGET 提升效率:

127.0.0.1:6379> MSET name www.biancheng.net topic Redis
OK
127.0.0.1:6379> MGET name topic
1) "www.biancheng.net"
2) "Redis"

注意:上述数据类型均指 Value 的类型,而非 Key。

Hash 散列:对象字段映射与容量限制

Hash 是由字符串类型的 field 和 value 组成的映射表,可理解为包含多个键值对的集合,常用于存储对象。单个 Hash 最多可包含 2^32-1 个键值对。

使用 HMSET 可同时设置多个字段,HGETALL 用于查询全部字段:

127.0.0.1:6379> HMSET userid:1 username xiaoming password 123456 website www.biancheng.net
OK
127.0.0.1:6379> HGETALL userid:1
1) "username"
2) "xiaoming"
3) "password"
4) "123456"
5) "website"
6) "www.biancheng.net"
Redis命令执行图

图1:Redis Hash 类型演示

List 列表:有序可重复与队列实现

List 的元素为字符串类型,按插入顺序排列,允许重复,最多可插入 2^32-1 个元素(约 40 亿)。可通过 LPUSH 向头部(左侧)或 RPUSH 向尾部(右侧)添加元素,并遵循索引机制。

使用 LPUSH 连续插入元素,LRANGE 按索引范围查看:

127.0.0.1:6379> LPUSH biancheng Java
(integer) 1
127.0.0.1:6379> LPUSH biancheng Python
(integer) 2
127.0.0.1:6379> LPUSH biancheng C
(integer) 3
127.0.0.1:6379> LPUSH biancheng SQL
(integer) 4
127.0.0.1:6379> LPUSH biancheng Redis
(integer) 5
127.0.0.1:6379> LPUSH biancheng Golang
(integer) 6
127.0.0.1:6379> LRANGE biancheng 0 6
1) "Golang"
2) "Redis"
3) "SQL"
4) "C"
5) "Python"
6) "Java"

由于 LPUSH 从左侧插入,最后插入的元素位于列表最前,行为与栈/队列相似,适合实现消息队列或最近记录列表。

Set 集合:无序唯一与 O(1) 操作

Set 是由字符串元素构成的无序集合,底层通过哈希映射表实现,添加、删除与查找的时间复杂度均为 O(1)。集合成员具有唯一性,重复插入不会成功,最大容量同样为 2^32-1 个元素。

使用 SADD 添加元素,成功返回 1,已存在返回 0;SMEMBERS 查看集合内容:

127.0.0.1:6379> SADD www.biancheng.net HTML
(integer) 1
127.0.0.1:6379> SADD www.biancheng.net Pandas
(integer) 1
127.0.0.1:6379> SADD www.biancheng.net NumPy
(integer) 1
127.0.0.1:6379> SADD www.biancheng.net Matplotlib
(integer) 1
127.0.0.1:6379> SADD www.biancheng.net JS
(integer) 1
127.0.0.1:6379> SADD www.biancheng.net HTML
(integer) 0
127.0.0.1:6379> SADD www.biancheng.net HTML
(integer) 0
127.0.0.1:6379> SMEMBERS www.biancheng.net
1) "Matplotlib"
2) "HTML"
3) "JS"
4) "Pandas"
5) "NumPy"

Zset 有序集合:分数排序与成员去重

Zset(sorted set)是有序集合,成员唯一且每个成员关联一个 double 类型的分数,分数允许重复。Redis 依据分数对成员进行排序。

使用 ZADD 添加成员与分数,成员已存在则添加失败(返回 0),分数可重复;ZSCORE 查看指定成员分数,ZRANGE 按索引范围查看排序后的成员:

127.0.0.1:6379> del biancheng
(integer) 1
127.0.0.1:6379> zadd biancheng 0 Python
(integer) 1
127.0.0.1:6379> zadd biancheng 1 Java
(integer) 1
127.0.0.1:6379> zadd biancheng 2 C++
(integer) 1
127.0.0.1:6379> zadd biancheng 3 MySQL
(integer) 1
127.0.0.1:6379> zadd biancheng 4 Redis
(integer) 1
127.0.0.1:6379> zadd biancheng 4 Redis
(integer) 0
127.0.0.1:6379> zadd biancheng 4 GOLANG
(integer) 1
127.0.0.1:6379> ZSCORE biancheng Redis
"4"
127.0.0.1:6379> zrange biancheng 0 4
1) "Python"
2) "Java"
3) "C++"
4) "MySQL"
5) "GOLANG"
6) "Redis"

数据类型选型与扩展类型说明

根据数据结构特征与业务需求,可参考以下选型建议:

  • 简单键值或二进制数据缓存:使用 String,支持单值与批量操作,上限 512 MB。
  • 对象属性存储:使用 Hash,字段独立可更新,适合用户资料、配置项等。
  • 有序可重复序列或队列:使用 List,支持头部/尾部插入与索引访问。
  • 去重集合与快速存在性判断:使用 Set,O(1) 复杂度,适合标签、好友关系等。
  • 带权重的排行榜或时间线:使用 Zset,按分数排序且成员唯一。

除上述五种核心类型外,Redis 还支持 HyperLogLog 类型,以及 Redis 5.0 提供的 Stream 类型,后续章节将作进一步介绍。

在线练习工具:https://try.redis.io/
查看更多命令:https://redis.io/commands

来源:https://m.biancheng.net/redis/data-types.html
上一篇MongoDB数据模型设计指南:嵌入式与规范化模型对比 下一篇Redis配置文件详解:查看、修改与核心参数说明
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Redis是什么:核心特性、架构与应用场景解析
数据库 · 2026-09-01

Redis是什么:核心特性、架构与应用场景解析

Redis是一款基于内存的键值型NoSQL数据库,以超高读写速度和丰富的数据结构著称。本文系统梳理Redis的核心特性、架构组成、性能优势及典型应用场景,并通过与Memcached、MySQL、MongoDB的对比,帮助开发者快速判断Redis是否适合当前业务需求。

Windows 安装 MongoDB 完整图文教程
数据库 · 2026-09-01

Windows 安装 MongoDB 完整图文教程

本文详细介绍在 Windows 系统上安装 MongoDB 的完整流程。从官网下载 MSI 安装包开始,逐步演示自定义安装路径、配置 Windows 服务、跳过 MongoDB Compass 等关键选项,并提供通过系统服务列表验证安装是否成功的方法,帮助开发者快速搭建本地 MongoDB 环境。

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动
数据库 · 2026-09-01

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动

本文详解在 Linux 系统下安装 MongoDB 的完整流程,涵盖依赖包安装、二进制包下载解压、环境变量配置、数据与日志目录创建及服务启动验证。通过标准化命令与路径说明,帮助开发者快速完成部署并确认服务状态。

MacOS安装MongoDB完整教程
数据库 · 2026-09-01

MacOS安装MongoDB完整教程

本文介绍在MacOS系统下安装MongoDB的完整流程,涵盖下载、解压、目录配置、环境变量设置及服务启动。通过明确的命令与参数说明,帮助开发者快速完成环境搭建并验证安装结果。

Ubuntu系统安装与配置Redis完整指南
数据库 · 2026-09-01

Ubuntu系统安装与配置Redis完整指南

本文详解在Ubuntu系统中安装Redis的两种主流方式:apt在线安装与源码编译安装。涵盖版本选择逻辑、服务启停与状态检查、连接验证方法,以及在线练习工具与桌面GUI客户端的对比与使用建议,帮助开发者快速搭建并验证Redis运行环境。