Redis 数据类型概述
Redis 支持五种基本数据类型:字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。每种数据类型都有其特定的使用场景和操作命令。
🔤 字符串(String)
字符串是 Redis 最基本的数据类型,一个键最大能存储 512MB 的数据。
特性:
- 二进制安全,可以存储任何数据
- 支持数值操作(递增、递减)
- 支持位操作
- 最大长度 512MB
常用命令示例:
SET key "Hello World" GET key INCR counter DECR counter APPEND key " Redis"
使用场景:
- 缓存用户信息
- 计数器(访问量、点赞数)
- 分布式锁
- 会话存储
🗂️ 哈希(Hash)
哈希是一个键值对集合,特别适合存储对象。
特性:
- 类似于关系数据库的表结构
- 节省内存空间
- 支持单个字段的操作
- 每个哈希可以存储 2^32 - 1 个字段
常用命令示例:
HSET user:1 name "张三" age 25 HGET user:1 name HMSET user:2 name "李四" age 30 city "北京" HGETALL user:1 HDEL user:1 age
使用场景:
- 存储用户信息
- 存储商品信息
- 配置信息管理
- 购物车数据
📋 列表(List)
列表是简单的字符串列表,按照插入顺序排序,支持双端操作。
特性:
- 有序的字符串列表
- 支持头部和尾部插入/删除
- 支持范围查询
- 最多可包含 2^32 - 1 个元素
常用命令示例:
LPUSH mylist "world" LPUSH mylist "hello" RPUSH mylist "redis" LRANGE mylist 0 -1 LPOP mylist RPOP mylist
使用场景:
- 消息队列
- 最新动态列表
- 任务队列
- 历史记录
🎯 集合(Set)
集合是字符串的无序集合,不允许重复元素。
特性:
- 无序且唯一
- 支持集合运算(交集、并集、差集)
- 快速的成员检测
- 最多可包含 2^32 - 1 个元素
常用命令示例:
SADD myset "hello" SADD myset "world" SADD myset "hello" # 重复元素不会被添加 SMEMBERS myset SISMEMBER myset "hello" SINTER set1 set2 # 交集
使用场景:
- 标签系统
- 好友关系
- 权限管理
- 去重处理
🏆 有序集合(Sorted Set)
有序集合是集合的升级版,每个元素都关联一个分数,按分数排序。
特性:
- 有序且唯一
- 每个元素关联一个分数
- 支持范围查询
- 支持分数范围操作
常用命令示例:
ZADD leaderboard 100 "player1" ZADD leaderboard 200 "player2" ZADD leaderboard 150 "player3" ZRANGE leaderboard 0 -1 WITHSCORES ZREVRANGE leaderboard 0 2 # 前三名
使用场景:
- 排行榜
- 优先级队列
- 时间线
- 范围查询
数据类型选择指南
选择建议:
- String:简单的键值存储,计数器,缓存
- Hash:存储对象,减少内存使用
- List:需要保持顺序的数据,队列操作
- Set:需要去重的数据,集合运算
- Sorted Set:需要排序的数据,排行榜