数据结构
使用场景
String
- 计数器
- INCR article:readcount: {文章 id}
- GET article:readcount: {文章 id}
- Web 集群 session 共享
- spring session + Redis 实现 session 共享
- 分布式系统全局序列号
- INCRBY orderId 1000
Hash
- 对象缓存
- HMSET user 1:name gd 1:balance 1888
- 购物车
- 结构:以用户 id 为 key,商品 id 为 field,商品数量为 value
购物车操作:
- 添加商品 hset cart:1001 10088 1
- 增加数量 hincrby cart:1001 10088 1
- 商品总数 hlen cart:1001
- 删除商品 hdel cart:1001 10088
- 获取购物车所有商品 hgetall cart:1001
List
- 微博和微信公号消息流
场景: 张三关注了李四, 王五, 张三发微博,消息 ID 为 10018:
- LPUSH msg:{zs-ID} 10018
王五发微博,ID 为 10086:
- LPUSH msg:{zs-消息ID} 10086
- LRANGE msg:{zs-ID} 0 4
set
- 微信抽奖小程序
- 点击参与抽奖加入集合: SADD key {userlD}
- 查看参与抽奖所有用户: SMEMBERS key
- 抽取 count 名中奖者: SRANDMEMBER key [count] / SPOP key [count]
- 共同关注的人
Zset
- 实现排行榜
bitmap
- 签到
geo
- 附近的⼈