1.String的应用场景
1)计数器
INCRarticle:readcount:{文章id}
GET article:readcount:{文章id}
2)Web集群session共享
spring session + redis实现session共享
3)分布式系统全局序列号
INCRBY orderld 1000 //redis批量生成序列号提升性能
2.微博与微信消息流Redis实现(List)
例如毛老师,关注了张老师,李老师
1)李老师发微博,消息ID为1001
LPUSH msg:{毛老师ID} 1001
2)张老师发微博,消息ID为1006
LPUSH msg:{毛老师ID} 1006
3)查看最新微博消息
LRANGE msg:{毛老师ID} 0 4
2.小程序抽奖,微信点赞、收藏与标签基于Redis实现(set)
抽奖小程序
1)点击参与抽奖加入集合 SADD key {userlD}
2)查看参与抽奖所有用户 SMEMBERS key
3)抽取count名中奖者
SRANDMEMBER key [count]/SPOP key [count]
微信微博点赞,收藏,标签
1)点赞
SADD like:{消息ID} {用户ID}
- 取消点赞
SREM like:{消息ID}{用户ID}
3)检查用户是否点过赞
SISMEMBER like:{消息ID}{用户ID}
4)获取点赞的用户列表
SMEMBERS like:{消息ID}
5)获取点赞用户数
SCARD like:{消息ID}
5.微博与微信朋友关注模型基于Redis实现(set)
集合操作实现微博微信关注模型
1)朱老师关注的人:
zhuSet-> {guo, xu}
2) 杨老师关注的人:
yangSet–> {zhu, bai, guo, xu}
3)郭老师关注的人:
guoSet-> {zhu, yang, bai,xu, xun)
4)我和杨过老师共同关注:
SINTER zhuSet yangSet–> {guo, xu}
5)我关注的人也关注他(杨过老师):
SISMEMBER guoSet yang SISMEMBER xuSet yang
6)我可能认识的人:
SDIFF yangSet zhuSet->(zhu, bai}
6.电商购物车如何用Redis实现(hash)
电商购物车
1)以用户id为key
2)商品id为field
3)商品数量为value
· 购物车操作
1)添加商品→hset cart:1001 10088 1
2) 增加数量→hincrby cart:1001 10088 1
3)商品总数→hlen cart:1001
4)删除商品→hdel cart:1001 10088
5)获取购物车所有商品→hgetall cart:1001
7.新闻排行榜
Zset集合操作实现排行榜
1)点击新闻
ZINCRBY hotNews:20190819 1 守护新闻
2)展示当日排行前十 I
ZREVRANGE hotNews:20190819 0 9 WITHSCORES
3)七日搜索榜单计算
ZUNIONSTORE hotNews:20190813-20190819 7
hotNews:20190813 hotNews:20190814… hotNews:20190819
4)展示七日排行前十
ZREVRANGE hotNews:20190813-2019081909 WITHSCORES
8.电商推荐系统如何用Redis实现
1)一个人买了东西,获取他的好友列表
2)他的朋友推荐他刚买的商品。