当前位置: 首页 > news >正文

Redis常见应用场景

目录

一、实现博客点赞功能

二、实现博客点赞用户列表功能

三、好友关注和取关以及求共同关注

四、实现关注推送

1、拉模式

2、推模式

3、推拉结合

四、三种模式对比


这里简单记录一下,没有实现方法,只是帮助记忆

一、实现博客点赞功能

可以通过set的结构将博客的业务名字+博客id作为键,点赞用户id作为值存储到redis中,查询的时候首先到redis中去判断这个博客是否被点过赞,然后封装一个有是否点赞字段的返回对象。

当发起点赞请求之后先到redis中判断这个博客的set信息中是否有当前用户,如果没有,则数据库点赞信息加一,并且添加,如果有,则把mysql点赞数减一,redis的删掉 。

当然这里用户的点赞信息也可以存到mysql库中持久存储,可以通过mq实现,点赞之后先存到redsi中,然后发送给mq去慢慢存到mysql中

二、实现博客点赞用户列表功能

首先我们可能会想到List,按照点赞的顺序去存入list当中,然后从同一侧取出,这样可以实现排序,set不支持排序,这里不考虑,zset可以根据score排序,我们可以把score设置成时间,根据点赞前后排序,值设置成用户的id,键设置成业务名字+博客id

三、好友关注和取关以及求共同关注

关注和取消关注首先先去数据库当中查询当前用户是否关注这个用户,数据库字段(id、用户id、关注的id,创建时间),如果没关注则点击关注,反之,然后再添加一个根据用户id查询关注列表的接口,每次关注一个人都保存到redis的set中key存为业务+当前用户id,值存为被关注用户的id,求共同关注的时候通过intersect求交集的id并查询用户信息。

四、实现关注推送

通过Feed流实现推送模式

采用timeline模式实现方案有三种:

  1. 拉模式
  2. 推模式
  3. 推拉结合
1、拉模式

也叫读扩散。

张三李四王五发布了相关信息到发件箱里,并携带时间戳,赵六查看时从各个发件箱中拉取信息并进行排序,缺点是耗时较长有延时

2、推模式

也叫写扩散

当张三李四发布消息的时候会直接推送到关注他的粉丝收件箱中并进行排序,延迟较低,但是缺点是内存占用比较低

这个文章简单介绍了一下推模式:

使用Redis实现用户关注博客的推模式-CSDN博客

3、推拉结合

也叫做读写混合,兼具推和拉两种模式的优点

对于粉丝有普通粉丝和活跃粉丝两种,对于活跃粉丝采用推模式,对于普通粉丝采用拉模式

活跃粉丝上线不需要主动拉取,效率较快,对于普通粉丝上线次数不多,主动拉取影响也不大

四、三种模式对比


http://www.mrgr.cn/news/28205.html

相关文章:

  • 进程信号
  • 【eNSP】路由基础与路由来源——静态路由实验
  • 24 年第十届数维杯国际数模竞赛赛题浅析
  • Redisson的可重入锁
  • 生产模式打包
  • Pod控制器
  • 【手撕】快排-分治
  • 【ESP32】ESP-IDF开发 | 中断矩阵+按键输入中断例程
  • 【23-24年】年度总结与迎新引荐
  • mtk7628 网口灯问题
  • 【数据结构】十大经典排序算法总结与分析
  • STM32—I2C
  • Andrej Karpathy谈AI未来:自动驾驶、Transformer与人机融合
  • 嵌入式Linux:向进程发送信号
  • 大模型笔记03--快速体验dify
  • dedecms靶场(四种webshell姿势)
  • 【Go】Go语言中的数组基本语法与应用实战
  • 建模杂谈系列256 规则函数化改造
  • 速通汇编(五)认识段地址与偏移地址,CS、IP寄存器和jmp指令,DS寄存器
  • 【C++】多态
  • dedecms(四种webshell姿势)aspcms webshell漏洞复现
  • 从冯唐的成事心法 看SAP协助企业战略落地到信息化
  • kubernetes中pause容器的作用与源码详解
  • 神经网络_使用tensorflow对fashion mnist衣服数据集分类
  • OpenGL笔记二十一之几何类设计
  • 数组学习内容