1. Redis核心数据类型全景解析
Redis作为当今最流行的内存数据库,其核心价值在于5种基础数据类型的巧妙设计。我在电商系统峰值流量处理中深刻体会到:选对数据类型,性能可能相差百倍。比如用String存储商品库存和用Hash存储,在秒杀场景下QPS能从2000提升到80000+。
1.1 底层数据结构与类型映射关系
Redis每种数据类型背后都是多种数据结构的组合拳:
- String:raw(简单动态字符串)、int(整数编码)、embstr(优化短字符串)
- List:quicklist(ziplist+linkedlist混合结构)
- Hash:ziplist(元素少时)、hashtable(元素多时)
- Set:intset(纯数字)、hashtable
- ZSet:ziplist(元素少时)、skiplist+hashtable
关键洞察:当元素数量超过512(默认值)或单个元素超过64字节时,存储结构会自动升级。通过
OBJECT ENCODING key可以查看具体编码方式。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 五大类型深度实战手册
2.1 String类型的三重境界
基础用法:
bash复制SET product:1001:stock 1000 # 商品库存
INCRBY product:1001:stock -1 # 原子性扣减
高级特性:
- 位图操作:
SETBIT login:20230501 10086 1记录用户登录状态 - 过期控制:
SET session:token "data" EX 3600自动过期会话 - 批量操作:
MSET config:rate 0.8 config:threshold 1000
实战陷阱:
- 大Key问题:超过10KB的String会显著影响集群性能
- 内存碎片:频繁修改的String会导致内存利用率下降
2.2 Hash的字段爆炸解决方案
电商用户画像存储案例:
bash复制HSET user:1001 profile:basic '{"name":"Alice"}'
HSET user:1001 behavior:buy '["phone","laptop"]'
性能优化方案:
1.
