终于把Redis场景设计搞清楚了,需要掌握的都在这了( 二 )
场景一:消息队列实现目前有很多专业的消息队列组件 Kafka、RabbitMQ 等 。我们在这里仅仅是使用 list 的特征来实现消息队列的要求 。 在实际技术选型的过程中 , 大家可以慎重思考 。
list 存储就是一个队列的存储形式:
- lpush key value; 在 key 对应 list 的头部添加字符串元素;
- rpop key;移除列表的最后一个元素 , 返回值为移除的元素 。
这时候使用 Redis 的 list 数据结构 , 来进行 TOP 100 新上架产品的存储 。
Redis ltrim 指令对一个列表进行修剪(trim) , 这样 list 就会只包含指定范围的指定元素 。
start 和 stop 都是由 0 开始计数的 , 这里的 0 是列表里的第一个元素(表头) , 1 是第二个元素 。
如下伪代码演示:
4.1set 类型使用场景set 也是存储了一个集合列表功能 。 和 list 不同 , set 具备去重功能 。 当需要存储一个列表信息 , 同时要求列表内的元素不能有重复 , 这时候使用 set 比较合适 。 与此同时 , set 还提供的交集、并集、差集 。
例如 , 在交易网站 , 我们会存储用户感兴趣的商品信息 , 在进行相似用户分析的时候 ,可以通过计算两个不同用户之间感兴趣商品的数量来提供一些依据 。
获取到两个用户相似的产品 ,然后确定相似产品的类目就可以进行用户分析 。
类似的应用场景还有 ,社交场景下共同关注好友 ,相似兴趣 tag 等场景的支持 。
文章插图
4.2Set集合特殊的操作命令setA={A,B,C} setB={B, C}
1)集合与集合之间的交集
sinter setA setB-->得到集合{B,C}
集合与集合之间的并集
sunion setA setB -->得到集合{A,B,C}
3)集合与集合之间的差集
sdiff setA setB-->得到集合{A}
4.3Set集合特殊的操作命令应用场景如何实现微博的微关系设计?
文章插图
5.1 Zset有序集合常用于排行榜 , 如视频网站需要对用户上传视频做排行榜 , 或点赞数与集合有联系 , 不能有重复的成员
文章插图
5.2Zset 类型使用场景
文章插图
【终于把Redis场景设计搞清楚了,需要掌握的都在这了】作者:码农清风链接:
推荐阅读
- V-Moda发布M-200 ANC耳机新品 经典机型终于有了主动降噪
- 2021 年,微软 Windows 的 ARM 转型终于能成了?
- 微信又迎来更新!你们想要的功能终于来了
- 虾米音乐正式关停:成立12年错失很多机会,将转型商业场景服务
- 美的探索工业互联网+5G+AI应用场景,成本可降低10%
- 1月12日!荣耀V40系列终于要来了!将采用库存“芯片”
- 微信也准备“收费”了?2大业务开始付费,网友:终于要来了
- 广受诟病的Edge同步短板终于补齐:现可同步历史记录
- 继iQOO、华为官宣后,雷军终于坐不住了,为小米11做准备
- 华为全场景落地山东省会大剧院:用科技谱写“城市音符”