冥冥幽拓,星河漫天,璀璨如萤,唯斯一人
- 非空
- 不含特殊字符
- 用户名不存在
- 加密
- 非空
- 不含特殊字符
- 用户名存在
- 加密 + 校验
- 脱敏
- 记录用户状态(session)
分布式 session:
信息校验、超时时间、增加到用户队伍表,每个人最多五个队伍 (失败就回滚
是队长:把队长转移给下一个人
不是队长:退出队伍
TODO: 删掉队伍
recommend
预热缓存:定时触发
分布式锁原理: redisson是基于了redis做的一个分布式锁,使用了类似redis的set key value nx命令的脚本,做的一个原子性建锁操作,而set key value ExpirationTime NX,重点在于它的NX,这个关键字的意思就是,如果锁不存在,则设置锁,并返回1(Long类型),如果锁存在,这返回0,锁存在,就代表着,有线程获取到了锁,并正在执行任务,其他的线程,会进入阻塞状态,在外部等待。
而redisson有一个特点,就是在我们不设置过期时间时,会自动设置一个默认的30s过期时间 this.lockWatchdogTimeout = 30000L; 并且,如果线程执行的任务时间,超过了 30000L / 3L ,看门狗就会将锁的超时时间,自动重新续期到30s,直到任务执行结束。 而任务如果在执行途中,程序死掉了,没有主动触发unlock()方法,也不会造成死锁,看门狗在线程结束的之后,监测到锁没有被释放,就会在30s之后自动释放锁,解决了死锁问题,
个人信息
头像
性别
用户名
用户账号
个性签名
积分
登录、注册、修改
响应:
- 获取匹配用户 (系统信息 0)
- 发送信息 (包含 toName 字段)
- 接收信息,(不包含 toName 字段)
-
格式化前端代码
-
使用 Hash 代替 String 来存储用户信息,节约了 xx% 的内存并便于单字段的修改
-
用户主页定时任务
-
签到
-
(点赞 信息、数据结构
-
常量类 前缀全局管理
-
部署 + 简历
