Redis的五种数据类型
String
应用场景:
1.计数器:
统计文章访问人数:INCR article:readcount:{文章id}
2.Web集群session共享:spring session+redis实现session共享
3.分布式系统全局序列号:INCRBY orderId 1000(redis批量生产序列号。一次拿一千个id,防止数据不一致)
List
应用场景:
1.栈=LPUSH+LPOP cba->abc
2.队列=LPUH+RPOP
3.阻塞队列=LPUSH+BRPOP (BRPOP命令:队列中为null时阻塞)
4.微博和微信公众号信息流:
我关注MacTalk,他发微博,消息id为10081:LPUSH msg:{我的ID} 10081
查看最新微博消息:LRANGE msg:{我的ID} 0 5 ( LRANGE key start stop 区间内的元素)
Set
应用场景:
微信抽奖小程序
1.点击参与抽奖加入集合 SADD key {userId}
2.查看参与抽奖所有用户SMEMBERS key
3.抽取n名中奖者 SRANDMEMBER key[n]
微博点赞收藏
1.点赞 SADD like:{消息id} {用户id}
2.取消点赞 SREM like:{消息id} {用户id}
3.检查用户是否点过赞 SISMEMBER like:{消息id} {用户id}
4.获取点赞用户列表SMEMBERS like: {消息id}
5.获取点赞用户数SCARD like: {消息id}
集合操作实现微博关注模型