注册登录是日常开发必备的一个功能,而且其在整个体系中的重要性也非常大,作为用户身份标记的第一道门槛,必须慎之又慎。
今天我们来聊一个redis的妙用,在注册和登录功能上,非常的方便和实用。
我们都知道redis作为一个高性能的 key-value 数据库,其中有一个PEXPIRE的命令,他的功能是:
Redis Expire 命令用于设置 key 的过期时间,key 过期后将不再可用。单位以秒计。
这个特性,用在短信或者邮件验证码的验证环节,非常的妙,以前传统时期,大家一般的操作手法,可能就是把验证码加密缓存到用户本地,或者session存储之后,外加一个过期期限。这样的话,一方面会增加系统的IO资源,另外对于日后的日志排查和维护上增加一些麻烦,也有些同学将这些请求记录,保存到数据库中,每次验证判断,都进行一次数据库连接来请求,遇上有些爆破行为,可能把整个数据库给拖垮了。
用上redis之后,将每次的手机号和验证码存入redis当中,并设置一个过期时间,只要有效期内这个值还存在,那就是可以认证放行的,到期后,这个值就自动删除了。即使遇上有些bug导致接口被爆破请求,也跟数据库分离开,不至于拖垮整个数据库。