【计数服务】计数服务落地

文章介绍了计数服务的重要性,特别是对于精准和非精准计数的不同处理方式。精准计数通常采用读缓存修改后写数据库的策略,而模糊计数则依赖Cache,通过异步线程或缓冲池批量更新数据库。为了保证高可用性,文章提出了数据库读写分离和Redis集群的方案。
摘要由CSDN通过智能技术生成

一、计数服务

计数服务是针对某个动作在不同维度行为次数的统计或者累加,计数服务需要满足计数的准确性,并且在满足准确性的同时,要注意其性能

二、计数服务的实现

计数服务分为 非精准计数和精准计数

  • 非精准计数:点赞量、浏览量
  • 精准计数:我收藏的、我购买的、我发布的

针对不同要求的业务场景,计数服务需要采取不同的方式实现

1. 精准计数
  • 查询 —— 读缓存
  • 修改 —— 先写数据库,然后删缓存

在这里插入图片描述

2. 模糊计数

读写都以 Cache 为主,批量更新数据库

在这里插入图片描述
批量更新操作:

(1)异步线程 —— 异步线程定时将 Redis 中数据更新到数据库
(2)缓冲池 —— 设置一个缓冲池,缓冲池满,写入数据库中

这样就算是丢失,也只是丢失一段时间的数据或者是buffer大小的数据,不会造成多大影响。

三、高可用设计

模糊查询 : 写请求高并发
精准查询 : 读多写少

DB 层 —— 数据库读写分离,防止流量暴增
Cache 层 —— 高可用设计,Redis 集群

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值