好友
阅读权限10
听众
最后登录1970-1-1
|
Z033
发表于 2023-7-25 17:34
大佬们,练手的项目是个SpringCloud项目,项目中有个点赞,评论,还有优惠卷、会员、购物车。点赞,我是这样实现的:用户点一下赞就放进redis中,使用的是hash结构,key是一个like + 被点赞的作品id,域是用户的id,值是点赞类型(可以点赞也可以点踩,1是赞,2就是踩。这样就需要两个不同的key,一个记录点赞,一个记录点踩,然后要去这两个key里判断域是否存在)。用户点一下就先去Redis中看看有没有这个域,没有就将点赞的操作放到里面,重复点就删除掉这个域。点一次后就向mq发消息,然后添加到数据库。这样用户一直点赞取消也会对数据库进行操做的,而且redis中就存放这么多用户的点赞数据吗?什么时候搞到数据库里面?redis中的数据是否要删掉。还是搞个xxl-job定期将redis中的点赞信息添加到数据库?但是这样就有一个问题了,什么触发分布式定时任务?而且定时任务也会影响性能。评论我也是这样子,通过MQ将消息插入到数据库,这样虽然快速给用户反应了,但是实际上还是跟数据库交互了,而且特别频繁把?我在想知道有没有什么优化的思路和手段?会员遇到的问题是:如果用户开通会员我如何告诉知道他什么时候过期提醒他?我能想到的方案是两个:一个是通过mq。当你开通会员后就将消息放入死信队列(就是一个月后进入死信队列)。在死心队列判断你是否过期,没有过期就继续把它丢到死心队列中。过期就修改。第二个是:通过xxl-job每天定时查询用户表看看哪些用户快过期然后那个跟mq那个差不多。第一个的问题是消息积压会不会太多了。第二个每天都要做会不会太消耗性能了。有没有好的办法。最后就是购物车的问题了,这个是最头痛的。我把一个商品加入购物车就是往redis中存放数据,那如果他将那个商品+ 1呢?我什么时候把redis中的数据同步到数据库?如果是定时任务那设置的时间是多少呢?然后redis中的key是否要删掉?希望各位大佬可以帮我解决一下疑惑。我可能表达不是很清楚希望大佬指正
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|