强啊,点赞业务缓存设计优化探索之路。

点赞功能高并发数据缓存方面的学习笔记 短视频中遇到点赞功能,投币功能时,会有海量点赞,查询的时候,这个时候我们在查询的时候遇到查询慢,数据一致性等等..在实际开发过程中,缓存的使用频率是非常高的,只要使用缓存和数据库存储,就难免会出现双写时数据一致性的问题,那我们又该如何解决呢? 阅读详情

背景

内容点赞业务在得物社区中是一个非常高频的业务场景,功能本身复杂度不高,但是业务场景多、QPS高、而且由于社区的用户体量,整体点赞的数据量非常大。其中最核心、对响应性能要求最高的主要是“ 用户是否点赞内容 ”和“ 内容点赞数 ”场景。

在得物社区中凡是有内容消费的场景,都会有上面两个点赞场景的处理,所以整体点赞业务的QPS在社区都是非常高的。

当我们在刷各种Feed流时,每一次下滑,都需要对数十篇内容进行登录用户是否点赞状态的判断。

作为基础业务,内容点赞业务的高性能响应,对上游内容场景的消费体验有极大的影响。

本文对得物社区的点赞业务如何做到高性能响应以及历史上在缓存使用上关于高性能、稳定性、低成本上的优化探索过程进行讲述,希望能给读者带来一些收获。

v1.0版本

功能需求

社区各种Feed流及内容详情页“登录用户是否已点赞内容” “内容被赞总数” “内容最新点赞用户列表”几个场景消费展示。

实现方案

点赞业务整体的高性能是基于Redis+MySQL架构。MySQL做数据存储和查询支持,Redis撑起业务的高性能响应。

在1.0版本中,服务架构还是单体PHP服务,技术方案上将动态下所有的点赞用户查询出来放到PHP数组里,然后序列化为Json字符串以Key/Value的方式存储到Redis中,当用户浏览内容时,取出缓存数据,反序列化Json为PHP数组,然后通过in_array和count方法判断是否已点赞及内容点赞数。

在缓存的维护上,则是每一次有新用户点赞或取消赞则直接清除Redis。

缓存结构如下:

cId => '[uid1,uid2,uid3...]'

流程图如下:

业务中使用缓存的实践总结(一) 背景 之前我在团队中一直负责的是数据开发的相关工作。因此,对于后台系统开发并没有很多工作实践。不过近期我也着手做了一些后台开发的相关工作,在实践过程中使用到了缓存,在实践一段时间后,在此文中对我使用缓存的实践做一总结。 实际上,我们的业务场景非常简单,没有很高的并发以及时延要求。因此,在设计缓存时,我们也没有把问题复杂化,方案设计的很简单。不过也并不影响我们进一步的思考缓存的使用。本文主要总结的是在工作实践这一场景下更多的联想思考,包括为什么要使用缓存、我们的缓存方案选择以及使用缓存中可能要注意的问题。一篇 阅读详情

相关推荐

探索 Spring Data Cassandra 后端的缓存策略

在现代分布式系统中,Cassandra作为高可用的列式NoSQL数据库,因其出色的水平扩展能力和最终一致性模型而广受欢迎。然而,即使是Cassandra这样的高性能数据库,在面对高并发查询时,合理使用缓存仍然是提升系统响应速度和降低数据库负载的关键策略。本文旨在为开发人员提供一套完整的Spring Data Cassandra缓存策略实施方案,涵盖从基础概念到高级优化的全方位内容。Cassandra特有的缓存考量因素Spring Cache抽象与Cassandra的集成不同一致性级别下的缓存策略。

架构师的AI之路,分享AI应用开发架构的学习与实践。 1170

业务智能化的关键:探索事件驱动的业务规则模型

企业在搭建规则引擎时可选择开源或自定义规则引擎。开源规则引擎如 Drools 功能丰富,社区支持成熟,快速满足基本需求,但在特定场景下定制化程度可能不足。自定义规则引擎则可完全量身定制,具备更大优势,但开发成本和维护难度较高。企业需综合考虑业务特点、技术实力和预算,选择合适的搭建方式。

领码SPARK - 以无代码之星火,燎原数字之未来! 1560

开源模型应用落地-业务优化篇(六)

通过多种技术整合,为降本增效赋能,让公司对你眼前一亮。 本篇学习向量Milvus数据库的实际使用,并学习如何对数据进行预处理。

以微薄之力,予他人些许温暖. 1804

探索大数据领域Eureka的缓存机制

本文将围绕“大数据领域Eureka的缓存机制”展开,从原理层实现层到实战层,全方位剖析Eureka缓存的设计哲学与工作流程。Eureka缓存机制的整体架构(Client本地缓存、Server响应缓存、Server注册表缓存);各层缓存的存储结构、更新策略与源码实现;缓存机制在大数据场景下的挑战(如服务实例爆炸、网络延迟);基于实际案例的缓存参数调优与问题排查方法;与其他服务发现组件(Consul、Nacos)的缓存机制对比。

AI架构全栈开发实战笔记 914

大数据领域数据产品的缓存策略优化

随着企业数字化转型加速,数据产品(如实时数据看板、推荐引擎、风控系统)日均处理数据量从TB级迈向PB级。传统数据库直接响应海量查询时,常出现IO瓶颈、连接数过载、响应延迟升高等问题。缓存策略通过在数据访问链路中增加高速存储层,将高频访问数据提前加载至内存或分布式缓存集群,可有效降低后端压力。缓存分层架构设计与核心算法原理分布式缓存一致性与高可用实现基于业务场景的策略定制与性能调优典型故障(穿透、雪崩、击穿)的解决方案核心概念:解析缓存分层架构与关键术语。

大数据洞察的博客 750

基于反相器的超声波发生和气泡检测电路

本文主要介绍了关于超声波的两种电路——基于反相器的振荡电路和基于逻辑们的气泡检测电路

xehagy的博客 1954

CANoe数据回放实战:如何用Replay Block精准复现实车故障(附ECU数据处理技巧)

本文深入探讨了利用CANoe的Replay Block功能进行数据回放,以精准复现实车偶发性故障的实战方法。文章重点解析了从原始OBD日志中移除目标ECU数据、转换报文方向等核心数据处理技巧,旨在帮助工程师重构真实的网络测试环境,从而高效定位并解决复杂的ECU问题。

nnn11的博客 495

Docker+vLLM内网离线部署Qwen3 流程

本文介绍了在CentOS 7系统下进行VLLM容器化部署Qwen3-32B大模型的内网离线方案。首先需准备Nvidia显卡驱动、CUDA 12.4和Docker环境。通过联网机器拉取vllm/vllm-openai镜像并导入内网服务器,同时从魔塔社区下载模型文件。部署时使用docker run命令启动容器,配置了GPU资源、内存共享、端口映射等参数,特别指定了模型路径、并行计算、内存利用率等关键参数。该方案实现了大模型在内网环境的安全高效部署,适用于需要离线运行的AI推理场景。

qq_42881308的博客 1036

js逆向第3例:蝉妈妈大屏实时数据formDataSign加密

蝉妈妈大屏抖音直播实时数据是抓取抖音直播间数据的实时数据,有类似需求的公司但没有能力去搞定抖音,抓取蝉妈妈数据也是一个不错的选择。接下来就是调试找到加密点,说句题外话蝉妈妈的所有js文件打包方式用的都是webpack5,那如何区分打包方式可以阅读这篇文章。时间戳 ,经过观察发现加密参数是实时变化的。这个函数扣下来,在浏览器控制台中测试一下。言归正传,打断点找到变量。继续打断点向上找又发现了。查看请求参数,可以看到。请求的内容,那么这个。

花臂不花Home 1539

Maestro 薛定谔软件简单分子对接案例

#参考:Maestro 薛定谔软件使用:Maestro 薛定谔对接:sid=287811。

weixin_42357472的博客 1万+

LED灯闪烁实验:代码集成

LED灯闪烁实验已经全部完成,在该实验中使用了较多的工具链,涉及底层软件、建模、软件编译等。首先,通过STM32CubeMX工具进行STM32底层软件配置,可以大大减少手写代码的工作量。另外由于做了可视化,也降低了STM32的上手难度,提升效率。利用Simulink建模,可以在PC环境下验证应用层算法的正确性而不依赖于具体控制器,实现应用层算法和底层软件、控制器硬件的解耦。另外,图形化的建模方式也更加有利于开发者思考与分析,大量的封装库文件也可以降低开发的工作量。

u013288925的博客 366

【图像超分】论文精读:Interpreting Super-Resolution Networks with Local Attribution Maps(LAM)

论文题目:Interpreting Super-Resolution Networks with Local Attribution Maps —— 用局部归因图解释超分辨率网络CVPR 2021!必读文章!必须会的可视化手段!很多文章中都会对比LAM!图像超分辨率 (SR) 技术发展迅速,受益于深度网络的发明及其连续突破。然而,众所周知,深度学习和深度神经网络很难解释。SR网络继承了这种神秘的性质,很少有作品试图理解它们。在本文中,我们对 SR 网络进行了归因分析。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 546

微信商家转账报错“当前使用用户过多,请稍后重新确认收款”解决方案

当前使用用户过多,请稍后重新确认收款”这个错误,其实就是典型的参数误处理导致的假报错。记住一句话就行👇JSAPI 场景下的package参数不要做 UrlEncode。如果你也遇到这个问题,希望这篇文章能帮你少踩一个坑。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 784

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: k8s学习配置harbor的nfs对接以及配置为helm仓库
下一篇: 你好好想想,你真的需要配置中心吗?
JavaMonsterr
博客等级 码龄4年 211粉丝 481原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值