Day262.使用redis实现投票统计、微博社交关系、共同关注&推荐关注、抽奖、商品关键词反向索引、排行榜、推荐机制 -Redis的高并发预约抢购系统

本文介绍了Redis在多种场景的应用案例,包括网站投票统计、社交关系管理、微博共同关注与推荐关注、抽奖程序、商品搜索构建反向索引、音乐网站的排行榜程序及新闻推荐机制等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、网站投票统计程序

  • sadd把用户添加到某个投票项的投票用户集合里去,

image-20210509190851127

  • sismember可以检查用户是否已经对任何一个投票项发起过投票,

image-20210509191152630

  • scard可以统计每个投票箱的投票人数,

image-20210509191442543

  • smembers可以拿到每个投票项的投票人

image-20210509191305860


二、微博社交关系

  • 关注目标用户,sadd把你加入到人家的关注用户集合里去,

  • sadd把别人加入到你正关注的用户集合里去,

image-20210509192543966

  • 取消关注,srem取消两个用户集合的关注,

image-20210509192707964

  • smembers获取你关注的所有人和你被哪些人关注了,

image-20210509192759372

  • scard获取你关注的人数和关注你的人数

image-20210509192849601


三、微博的共同关注与推荐关注

  • sinter set1 set2,取交集,就是共同关注好友;

image-20210509193402147

  • 推荐好友关注的人(我关注的人关注的其他人),sdiff获取差集,然后用差集再和你的好友集合sdiff一下,再取差集,就可以得到你没关注的但是你好友关注的人,此时就可以推荐一下;

  • sunion,如果+store还可以存储,取并集


四、抽奖程序

  • srandommember,随机从set里返回几个元素,

image-20210509200603619

  • spop,随机从set里弹出几个元素,

  • sadd可以加入待抽奖的人,

image-20210509200447999

  • smembers返回所有待抽奖人,

  • scard返回参与抽奖的人数,

  • srandmember返回随机抽中奖的人


五、商品搜索构建反向索引

  • 为商品添加索引,sadd,给商品添加一个关键词索引集合,sadd把商品添加到每个关键词的商品集合里去,

image-20210509201636140

  • 删除商品是一个反向的过程,走srem,

  • 获取一个商品所有的关键词,smembers,

  • 根据某几个关键词去搜索商品,对每个关键词都smembers一下拿到商品集合,然后走一个sintern对多个集合进行交集

对每个搜索词包含集合进行取交集

image-20210509201851676


六、音乐网站的排行榜程序

sorted set,不能有重复的数据,加入进去的每个数据都可以带一个分数,他里面的数据都会按照分数进行排序,有序的set,他自动按照分数来排序,相当于你可以定制他里面的排序规则了

  • zadd,把音乐加入排行榜中,刚开始分数可能就是0;

image-20210509203059951

  • zscore可以获取音乐的分数;

  • zrem可以删除某个音乐;

  • zincrby可以给某个音乐增加分数,这个增加分数可能就是说有人下载了,或者是有人播放了,或者有人分享了, 有人点赞了,此时可以按照规则去加分,那么排序就会移动了;当然也可以减去分数;

image-20210509203600645

  • zrevrank获取音乐在排行榜里的排名;

image-20210509203924838

  • zrevrange set 0 100 withscores,可以获取排名前100的热门歌曲

image-20210509204036932


七、新闻推荐机制

我们可以把一个sorted set里的数据倒序排序,选择其中我们指定的分数区间范围内的数据,对这块数据还可以进行分页查询,我们可以维护一个新闻数据集合,里面的分数都是新闻的时间戳

  • zadd,把当日最新的新闻加入到一个集合里,

image-20210509204615633

  • zrem是删除某个新闻,

  • zcard是统计当日最新新闻,

  • zrevrangebyscore max_time min_time start_index count withscores,是说按照他的时间分数进行倒序排序,然后获-取指定的分页,

image-20210509204947219

  • zcount 可以获取指定分数范围的数量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿昌喜欢吃黄桃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值