Redis 数据类型
5 种基础结构及其适用场景。
Key PointsString 最通用,Hash 存对象,List 做队列,Set 去重,Sorted Set 做排行榜。
五种结构一览
| 结构 | 特点 | 典型场景 |
|---|---|---|
| String | 字符串/数字/二进制 | 缓存、计数器、分布式锁 |
| Hash | 字段-值映射 | 存对象(用户资料) |
| List | 有序可重复双端队列 | 消息队列、最新列表 |
| Set | 无序去重集合 | 标签、共同好友 |
| Sorted Set | 带分数的有序集合 | 排行榜、延迟队列 |
最小例子
Shell
SET user:1:name "alice" # String
HSET user:1 age 29 city "BJ" # Hash
LPUSH news:latest "post-1" # List
SADD tags:1 "go" "redis" # Set
ZADD rank 95 "alice" 88 "bob" # Sorted SetOutput
(integer) 1
(integer) 2
(integer) 1
(integer) 2
(integer) 2A Redis key can hold up to 512MB, but a 'big key' (e.g. a million-member Set) blocks on delete/serialize. Keep single-key size bounded, shard if needed.
五种结构一览
| 结构 | 特点 | 典型场景 |
|---|---|---|
| String | 字符串/数字/二进制 | 缓存、计数器、分布式锁 |
| Hash | 字段-值映射 | 存对象(用户资料) |
| List | 有序可重复双端队列 | 消息队列、最新列表 |
| Set | 无序去重集合 | 标签、共同好友 |
| Sorted Set | 带分数的有序集合 | 排行榜、延迟队列 |
最小例子
Shell
SET user:1:name "alice" # String
HSET user:1 age 29 city "BJ" # Hash
LPUSH news:latest "post-1" # List
SADD tags:1 "go" "redis" # Set
ZADD rank 95 "alice" 88 "bob" # Sorted SetOutput
(integer) 1
(integer) 2
(integer) 1
(integer) 2
(integer) 2一个 Redis 键最多能存 512MB,但大 key(比如一个百万成员的 Set)会导致删除/序列化阻塞。控制单 key 规模,必要时分片。