项目当中 签到功能 +多级缓存+介绍一下点赞功能

26 篇文章 0 订阅
15 篇文章 0 订阅
本文介绍了如何使用Redis位图解决签到业务中的大数据量问题,以及多级缓存(本地+Redis)的使用以提高性能。同时,讨论了独立的点赞模块设计,包括利用Redisset存储用户点赞记录和zset跟踪点赞次数,以及如何通过消息队列实现微服务间的异步通知,降低耦合度。
摘要由CSDN通过智能技术生成

签到是怎么做的?

刚开始想用数据库做来着,后来发现用数据库数据量太大,就找解决方案,想到了用bitMap 位图。

bitMap 位图是什么  ?

我们采用的是radis 里的bitMap结构  他本质是字符串  最大512mb

是使用01 来存储的一种方式

为什么?

节省空间  我们采用的是 一个人一个月 的签到记录放进一个单独的key里面

最多也就31bit  签到这个业务 只有签到和未签到 两张状态  所有才用 bitmap

什么是多级缓存?

多级缓存就是  本地缓存+radis缓存形成的多级缓存

流程是 : 先访问本地缓存 没有就访问radis缓存 在没有 就访问 数据库

好处点是什么?

相对应radis来说 响应速度更快  并且没有网络带宽消耗 

缺点是什么 ?

由于是本地缓存  所以在分布式环境下  很难同步 

项目中有没有用到  ??

有啊  

是分类数据 

为什么是分类数据 ?

因为分类数据 不经常变化 数据量不能太大 一般百万级别

你们是用什么框架 做的?

咖啡因  性能遥遥领先 经过Spring洗礼 容错性也好

介绍一下点赞功能?

点赞是一个独立 通用模块   原因是我们这个系统 有好几个地方都用到 点赞  所以 我呢就想着 把他设计独立一些   其次 点赞是一个高频接口  所有要保证这个接口能够应对高并发  还有数据安全能得到保证  

 所有用到了radis相关存储数据  

set 用来存储点赞记录 

zet用来存储点赞次数 

为什么要用到这两个结构?

set存储点赞记录  是利用 set天然去重性  所有value 是用户id

使用zset 原因 是 我们采用了合并写思路  原因是 点赞功能是一个比较简单操作数据库过程 

所有就先把这个数据存储在radis 中  在通过定时任务去修改  数据库

最后由于点赞  数量的这个值是存在各个微服务里 ,又由于我的点赞 是一个独立的微服务 ,所以我采用mq来做异步通知 的方式来降低两个模块之间的耦合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值