最近一直在纠结低配版的单点登录. 用于小型项目开发.
场景: 前后端分离, 单点登录
直奔主题:
1. Token生成思路 = md5(当日日期(yyyyMMdd) + id) + 4位随机
2. 每次登录删除Redis里面的前缀为md5(当日日期(yyyyMMdd) + id)的token , 然后放入新增的token
这里要用到Redis的 keys 命令
由于Redis的单线程服务模式,命令keys
会阻塞正常的业务请求,如果你一次keys
匹配的数量过多或者在del
的时候遇到大key,都会直接导致业务的不可用,甚至造成redis宕机的风险,
不过我们这里由于是单点登录,这种匹配永远只有一个,个人认为不会出现上述的情况.(ps: 其实我也不知道是不是这样!!! O(∩_∩)O哈哈~)
/*keys方法 进行模糊匹配*/
Set keys = RedisUtil.redisTemplate.keys(messageKeyPre + "*");
/*执行删除*/
RedisUtil.redisTemplate.delete(keys);