02 2021 档案
摘要:前言 Redisson 分布式锁的正确使用 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的
阅读全文
摘要:JWT 简介 JWT是 json web token 缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证 token的正确性,只要正确即通过验证。 优点是在分布式系统中,很好地解决了单点登录问题,很容易解决了session共享的问题。 缺点是无法作废已颁布的
阅读全文
摘要:1.对于@OneToMany和@ManyToOne来说是一样,两张表互相维护,加入mappedBy="",由被控方维护的表,增加外键即可。如果是没有增加上面类型,就会产生一个第三方表进行维护。 2.对于@ManyToMany注解来说,也是一样的,在这里需要注意一下,我们需要一个第三方表来维护多对多的
阅读全文
摘要:在实际的项目中,对于一些用时比较长的代码片段或者函数,我们可以采用异步的方式来执行,这样就不会影响整体的流程了。比如我在一个用户请求中需要上传一些文件,但是上传文件的耗时会相对来说比较长,这个时候如果上传文件的成功与否不影响主流程的话,就可以把上传文件的操作异步化,在spring boot中比较常见
阅读全文
摘要:本文断点续传文件思路: 前端(客户端)需要根据固定大小对文件进行分片,请求后端(服务端)时要带上分片序号和大小; 服务端创建conf文件用来记录分块位置,conf文件长度为总分片数,每上传一个分块即向conf文件中写入一个127,那么没上传的位置就是默认的0,已上传的就是Byte.MAX_VALUE
阅读全文
摘要:首先,贴一个待优化的sql语句 select * from A left join B on A.c = B.c where A.employee_id = 3 需求解读: A表left join B表,并且指定A表中的employee_id为一个具体的值 在c字段不是任何索引,A B 表各有1W多
阅读全文