使用黑名单撤销JWT会话令牌。我应该为黑名单创建另一个系统以提高性能吗?

时间:2018-05-21 00:33:31

标签: postgresql performance session redis jwt

我正在创建一个Web应用程序(用C ++表示性能),我期望每秒处理大量事件;像千万。

我一直在阅读有关在我的网络会话中使JWT令牌失效的问题,而最合理的解决方案是为黑名单提供存储空间。必须针对每个请求检查列表,我想知道的是性能相关:我应该创建一个单独的系统来存储我列入黑名单的令牌(如redis)吗?或者我应该使用我用于其他所有内容的相同PostgreSQL数据库?使用其他系统有什么好处?

我问的原因是我看到很多关于在线使JWT令牌失效的讨论,很多人建议使用redis(并且不要解释它是否只是与其设计相关的解决方案)或者它是否因某种原因而成为他们的SQL数据库服务器的替代品。那么,为什么不使用您用于Web应用程序的相同数据库呢?有没有理由让redis更好呢?

1 个答案:

答案 0 :(得分:1)

Redis的速度要快得多,因为它存储在服务器的内存中,而不是打开与DB的连接,查询并返回结果。因此,如果速度至关重要,那么Redis是您想要的。

唯一的负面影响是服务器重启后,列入黑名单的令牌不见了。除非您将它们保存在磁盘上的某个地方。