Redis 有哪些数据类型?分别适用于哪些场景?
1. String(字符串)
特点:二进制安全,最大512MB
应用场景:
- 缓存对象(JSON序列化)
- 计数器(INCR/DECR)
- 分布式锁(SETNX)
> SET user:1 "{\"name\":\"Alice\",\"age\":30}"
> INCR page_view
2. Hash(哈希)
特点:字段值映射表,适合存储对象
应用场景:
- 用户属性存储
- 商品购物车
> HSET product:1001 name "iPhone15" price 6999 stock 100
> HINCRBY product:1001 stock -1
3. List(列表)
特点:双向链表,元素可重复
应用场景:
- 消息队列(LPUSH/RPOP)
- 最新消息排行
- 记录操作日志
> LPUSH news "Breaking: Redis 7.0 released!"
> LRANGE news 0 4
4. Set(集合)
特点:无序唯一元素集合
应用场景:
- 共同关注(SINTER)
- 随机抽奖(SRANDMEMBER)
- 标签系统
> SADD user:1:tags "tech" "programming"
> SINTER user:1:tags user:2:tags
5. Sorted Set(有序集合)
特点:带权重的有序集合
应用场景:
- 实时排行榜(ZREVRANGE)
- 延迟队列(按时间戳排序)
- 范围查询
> ZADD leaderboard 100 "PlayerA" 85 "PlayerB"
> ZREVRANGE leaderboard 0 9 WITHSCORES
6. 特殊类型
Bitmaps:位操作(日活统计)
HyperLogLog:基数统计(UV统计)
Geospatial:地理位置(附近的人)
Streams:消息流(类似Kafka)
评论