- 分布式锁
- 计数器:在互联网行业,我们经常会看到文章都有统计关注数,浏览数,这些数据都需要实时变化
这里使用Redis以下两个api可以实现:
INCR key //INCR readcount:{帖子id} 每浏览一次
GET key //GET readcount:{帖子id} 获取浏览量 - 分布式全局序列
在分布式架构中,通常会涉及到全局序列增长的问题,以用户id为例,我们可以通过redis来实现,由于频繁的+1操作和获取都占用磁盘IO,所以一般的做法都是先从redis取一段出来缓存到服务端。 - 实现新浪/Twitter用户消息列表功能
比如,guanrossum关注了奥巴马,关注了川普,关注了科比,关注了詹姆斯;
奥巴马发消息,消息ID为 123123
– LPUSH {guanrossum ID} 123123
科比发消息,消息ID为 123124
– LPUSH {guanrossum ID} 123124
//查询guanrossum的推文消息,第一页,每页取20条
– LRANGE {guanrossum ID} 0 1*20 - 实现直播刷礼物、转发参加抽奖活动
//刷礼物、转发加入到集合键中
SADD key {userID}
//获取所有用户
SMEMBERS key
//抽取 n 名中奖者
SPOP key [n] 或者 SRANMEMBER key [n] - 实现点赞、签到、收藏等功能
//点赞
SADD praise:8001 1001
//取消点赞
SREM praise:8001 1001
//检查用户是否点过赞
SISMEMBER praise:8001 1001
//获取点赞的用户列表
SMEMBERS praise:8001
//获取点赞用户数
SCARD praise:8001 - 基于集合键运算API实现关注模型(可能认识的人)
很多社交类网站,我们经常可以发现,这类网站经常会推送一些“你可能认识的人”。通过Redis 集合键运算API也可以实现类似功能。
已知:
bill关注的人: billSub --> {‘zhang’, ‘wang’, ‘yan’}
zhang关注的人:zhangSub --> {‘bill’, ‘wang’, ‘yan’, ‘xu’}
wang关注的人:wangSub --> {‘bill’, ‘zhang’, ‘yan’, ‘xu’, ‘li’}
那么
//bill和zhang共同关注
SINTER billSub zhangSub
{‘wang’, ‘yan’}
//我关注的人也关注他
SISMEMBER wangSub zhang
SISMEMBER yanSub zhang
//我可能认识的人
SDIFF zhangSub billSub - 基于集合键运算API实现电商商品筛选
每个商品入库的时候建立商品的静态标签列表,如 品牌、尺寸、处理器、内存… …
SADD brand:lenovo 拯救者y7000P-001 ThinkPad-T480
SADD screenSize:15.6 拯救者y7000P-001 机械革命Z2AIR
SADD processor:i7 拯救者y7000P-001 机械革命X8TiPlus
SADD memory:8G 拯救者y7000P-001 ThinkPad-T480 机械革命X8TiPlus 机械革命Z2AIR
//查询“联想 15.6寸 i7处理器 8G内存”笔记本
SINTER brand:lenovo screenSize:15.6 processor:i7 memory:8G - 有序集合(Zset)键实现单日排行榜
//点击新闻
ZINCRBY hotNews:20190413 1 张丹峰回应出轨
//展示今日热点, 倒序取10条,并返回score值
ZREVRANGE hotNews:20190128 0 10 WITHSCORES
//展示七日热点
ZUNIONSTORE hotNews:20190413-20190420 hotNews:20190413 hotNews:20190420
ZREVRANGE hotNews:20190413-20190420 0 10 WITHSCORES
Redis使用场景
最新推荐文章于 2024-05-30 15:03:55 发布