Redis五大常用数据类型技术笔记

Redis整体存储结构为 Key-Value 键值对:

  • Key:统一都是字符串类型
  • Value:包含5种核心常用数据类型,各自结构、特性、适用场景完全不同

一、String 字符串

结构特点

Redis最简单基础的数据类型,就是普通文本字符串,一个key对应一段字符内容。

类比Java

等同于 String / 基本数据类型包装类

核心特性

  1. 二进制安全,可存文本、数字、图片字节数据
  2. 支持数值自增、截取、拼接等操作
  3. 单个value最大容量512MB

适用场景

  • 缓存普通文本数据:用户信息、商品详情
  • 计数器:浏览量、点赞数、访问次数
  • 分布式全局ID

二、Hash 哈希

结构特点

嵌套键值结构:key -> {field: value, field2: value2...}

一个Redis大key下,包含多个字段(field)与对应值

类比Java

等同于 HashMap

核心特性

  1. 适合存储对象,无需序列化整个实体,可单独修改某个字段
  2. 节省空间,比多个string存储对象更轻量化

适用场景

  • 存储用户基础信息:姓名、年龄、手机号
  • 商品属性、订单简易信息存储

三、List 列表

结构特点

有序链表结构,元素按插入先后顺序排列

两头读写效率极高,中间遍历效率偏低

类比Java

等同于 LinkedList

核心特性

  1. 允许元素重复
  2. 有序存储,支持左/右两端入队、出队
  3. 可模拟队列、栈结构

适用场景

  • 消息队列(简易生产者消费者)
  • 最新消息列表:首页动态、聊天会话记录
  • 栈结构:撤销操作记录

四、Set 集合

结构特点

无序集合容器,内部元素无先后顺序

类比Java

等同于 HashSet

核心特性

  1. 元素唯一,自动去重
  2. 支持集合运算:交集、并集、差集

适用场景

  • 去重统计:用户访问IP、签到记录
  • 共同好友、好友推荐(集合交集运算)
  • 抽奖活动(随机抽取集合内成员)

五、Sorted Set(ZSet) 有序集合

结构特点

在Set基础上,给每个元素绑定一个浮点分值(score),依靠score实现全局排序

类比Java

等同于 TreeSet

核心特性

  1. 元素不可重复,score可以重复
  2. 自动根据score升序/降序排列
  3. 支持按分值区间、排名范围查询

适用场景

  • 排行榜:销量榜单、积分排名、热搜榜单
  • 延时任务队列(score存入时间戳)
  • 权重有序的推荐列表

总结对照表

类型 有序 可重复 核心特征
String - - 基础字符串,万能通用
Hash - field不重复 对象字段精细化存储
List 插入有序 ✅ 链表,消息队列、时序数据
Set 无序 ❌ 去重、集合运算
ZSet 按score排序 ❌ 排行榜、有序权重队列
相关推荐
w-w0w-w6 小时前
SQL注入
网络·数据库·sql
tianyuanwo6 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
一条泥憨鱼6 小时前
【计算机网络】短连接、长连接与连接池:从 TCP 握手到池化复用的完整链路
网络·数据库·网络协议·tcp/ip·计算机网络
我不会起名字3226 小时前
Redis 从 0 到 1(十七):订单 30 分钟不支付自动关闭——ZSet 延迟队列 Go 实现
redis·go·延迟队列·zset·订单
IvorySQL7 小时前
深入 PostgreSQL WAL:从崩溃恢复到逻辑复制
数据库·postgresql
幽灵诶8 小时前
Mysql(基于测试的学习)
数据库·mysql
砚底藏山河8 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
利威尔xu8 小时前
Go IM 源码实战(13):30 个会话只有 2 个红点,未读数错在三条路径
redis·后端·微服务·面试·golang
宇宙无敌暴龙战士6669 小时前
MySQL 8 库表操作学习笔记:SQL 基础、库表管理、约束与用户授权全流程
数据库·sql·mysql·学习笔记·后端开发