为什么需要用redis来存储token信息?

最近在看token方面的文章,发现一个很有意思的事情就是大家很多时候会用redis来存储用户的登录信息,但是为什么呢?按照我的理解,服务端只需要对客户端发送过来的用户信息重新生成的token值和客户端携带过来的token值进行比对运算就可以了。为什么还是需要一个中间库对用户信息进行一个存储呢?

阅读 13.4k
3 个回答

首先,引入一个中间件管理token就避免了单点问题,对于分布式系统来说,不管你是哪一台服务处理的用户请求,我都是从redis获取的token。其次,redis的响应速度非常快,如果不出现网络问题,基本上是毫秒级别相应。第三,对于token来说,是有时效性的,redis天然支持设置过期时间以及通过一些二方包提供的API到达自动续时效果。个人感觉,主要就三方面原因吧。

1、token具有时效性,redis处理有优势。
2、在API领域,由于请求数比较多,redis也有优势。
3、登录信息一般不需要长效储存,所以可以减少DB的压力,直接用redis.
还有其他的看项目情形来定

新手上路,请多包涵

我发现上面的回答都没有说到题主关注的这个点上。
其中最要的一个场景就是密码或token泄露后,客户修改了密码后要能使其他已登录的客户端立即下线的功能。
后端就必须通过后端存储的token校验它是否失效。而不是等token自己过期来失效。
参考 https://segmentfault.com/q/10...

推荐问题
宣传栏