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

【Redis】实现点赞功能

一、实现笔记点赞

        使用redis实现点赞功能,对于一个笔记来说,不同用户只能是点赞和没点赞,点赞过的笔记再点击就应该取消点赞,所以实际上根据需求,我们只需要将点赞的数据存到对应的笔记里,查看对应的笔记相关的数据,看看点赞的用户有没有自己当前用户,如果有那么这个笔记的点赞数量like应该-1,如果没有那应该like+1。

        那么可以用数据库创建一张表来维护这个数据,不多对于数据库来说这个有点重了,首先这个数据不是特别重要,其次这个数据可以访问量操作次数特别高,对于数据库来说频繁进行读取数据,导致大量的io操作,对数据的压力还是比较大的,然后它效率相比redis来说比较慢,所以使用redis是一个比较好的操作,因为他是存在内存中,所以不会过多消耗性能,而且他读取写操作效率高。

        那么我们可以建一个set,存对应的笔记中有哪些用户点赞了,如果点赞的用户不在其中,就可以将用户id记录进去,如果存在就不允许进入,set是防止同一个用户点多次,因为set不允许重复。

二、实现笔记点赞排行榜顺序

        使用sortedset,它里面有一个score值,可以通过score这个值进行排序,ZSCORE获取对应的socre值,ZRANGE获取score值的范围的排序。将之前的业务的score改为实际戳,ZSET列表里存的是点赞过的id,然后有一个score 对应的是点赞的时间,然后根据zrange  查看排行榜 (升序) 获取的范围有一个特点,只是能获取对应值内的数据。然后如果用sql查的时候用in语句,如果是(5,1)那么sql会认为是(1,5),所以要用order by field指定顺讯。

        


http://www.kler.cn/a/402479.html

相关文章:

  • docker 容器运行Ruoyi-cloud
  • Python办公自动化案例:将演示文稿批量导出为图片和PDF文件
  • 从零开始学习数据库 day0(基础)
  • Vue——响应式数据,v-on,v-bind,v-if,v-for(内含项目实战)
  • UG NX二次开发(C++)-UIStyler-指定平面的对象和参数获取
  • 【计算机网络】多路转接之poll
  • 5.tree of thought 源码 (prompts 类)
  • 零基础入门Flink,掌握基本使用方法
  • 华为openEuler考试真题演练(附答案)
  • # TCP、UDP、HTTP、Socket
  • 无人机CAN总线基础——CKESC电调小课堂14
  • 平价鼠标推荐-英菲克PW1有线鼠标
  • 【Spring boot】微服务项目的搭建整合swagger的fastdfs和demo的编写
  • Linux中定时操作
  • 【AIGC】破解ChatGPT!如何使用高价值提示词Prompt提升响应质量
  • 109. UE5 GAS RPG 实现检查点的存档功能
  • 计算机毕业设计Hive+Spark空气质量预测 空气质量可视化 空气质量分析 空气质量爬虫 Hadoop 机器学习 深度学习 Django 大模型
  • 鱼厂实习,光速转正了!
  • 【STM32项目】基于STM32设计的震动马达超声波电机高频震动——高级定时器PWM互补输出带死区控制
  • 《自动化运维》
  • 20.有效的括号-力扣(LeetCode)
  • 全面解析亚马逊云服务器(AWS):功能、优势与使用指南
  • 【Vue 表单类组件封装与 v-model 简化代码】
  • 使用vue-i18n为你的Vue应用添加多语言支持
  • 爬虫基础总结 —— 附带爬取案例
  • 青训营刷题笔记11