postgresql - 使用黑名单撤销 JWT session token 。我应该为性能黑名单创建另一个系统吗?

标签 postgresql performance session redis jwt

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

我一直在阅读关于在我的网络 session 中使 JWT token 无效的信息,对此最合理的解决方案是为列入黑名单的 token 设置一个存储位置。每个请求都必须检查该列表,我想知道的是与性能相关的问题:我应该创建一个单独的系统来存储我列入黑名单的 token (如 redis)吗?还是我应该只使用我用于其他一切的同一个 PostgreSQL 数据库?使用另一个系统有什么优势?

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

最佳答案

Redis 快得多,因为它存储在服务器的内存中,而不是打开与数据库的连接、查询和返回结果。因此,如果速度很重要,那么 Redis 就是您想要的。

唯一的缺点是如果服务器重新启动,黑名单 token 就会消失。除非你将它们保存在磁盘上的某个地方。

关于postgresql - 使用黑名单撤销 JWT session token 。我应该为性能黑名单创建另一个系统吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50440611/

相关文章:

asp.net - 表单例份验证不应该超时?

node.js - expressjs - 未设置响应正文

php - 无法通过 PHP session 更新 MySQL 表

php - 了解 PHP 中的 session

java - 使循环更快的最佳实践 - 多线程是一种选择吗?

database - 与 SQLAlchemy 不区分大小写的完全匹配

python - 执行 pygame 时提高性能?

PostgreSQL经纬度查询

postgresql - 检索当前(在运行查询时)序列值的选项

postgresql - RDB 和 RDF 映射——怎么做?