点赞功能的实现及Springboot定时器的应用

点赞,前端会传三个字段,一个是userId让我知道是谁点的赞,一个是点赞的类型,是点赞还是取消赞,还有一个就是这个文章或者主题Id,如果每一次点赞都直接操作数据库的话,这样对数据库的压力比较大,所以在这里我选择用redis,我把从前端接收到的数据先存放到redis里,然后设置一个定时器,让定时器每五分钟把这些数据存放到数据库一次,点赞这个功能我在数据库中创建了两个表,一个表里存放文章Id和点赞的次数,另一个表里存放userId和他点赞过的文章或者主题Id

上面这个是我把接收到的放到了一个对象里,把对象传到service,我把接收的三个字段拼起来加上前缀做key这样他就不会计算一个人点赞了两次,存到redis的key是这样的

现在他们的key就是这个样子的了,这样我们就已经成功把数据放到了redis缓存里了,

接下来说一下怎么设置定时器和怎么把他从缓存中取出来并进行操作放入数据库中,因为我用的是Springboot框架,设置定时器只需要在启动类里加一个注释,如下图

然后再创建一个类去写定时,和你要处理的逻辑

这是一个定时的类,红色框框里表示每五秒钟执行一次,当你启动,能每五秒输出当前时间,就说明定时器成功了,然后在这个定时器写你需要的逻辑这样就可以了

我是用keys取出了所有key,然后再用mget通过key去取到所有的对应的value,然后进行操作,最后放到数据库里

这是我写的大概的实现,写的不好的地方请大家多多指教



猜你喜欢

转载自blog.csdn.net/gaojyu/article/details/80882302