【问题标题】:Caching user permissions in redis, good idea?在redis中缓存用户权限,好主意吗?
【发布时间】:2021-08-19 02:13:45
【问题描述】:

在过去的几天里,我一直在努力提高应用性能。你如何看待在 redis 中缓存用户数据和权限?在我的情况下,每次用户创建帖子或尝试上传文件应用程序检查数据库时,如果用户存在并获取用户权限和角色。我的第一个想法是将权限和用户角色放在会话中,但用户可以在不同的设备上进行多个会话,所以每次用户被禁止或用户权限更改应用程序需要更新每个用户的会话,据我所知 express-session 做不支持这种功能。

【问题讨论】:

    标签: node.js express session redis


    【解决方案1】:

    不幸的是,这是一个非常开放的问题,没有严格的答案。但作为建议,我会说 Redis 非常适合存储用户会话。移动会话的部分仍然需要您查询数据库(您获取会话,您必须查询用户信息,并且还 ping Redis 以获得权​​限和角色)。所以我认为你应该把所有的会话数据放在一个地方,最快的应该是 Redis。它还可以让您保存该数据,使其不完全在内存中。还有很多方法可以优化它,比如何时写入数据(比如每秒)等等。

    查询 Redis 非常快速和高效,因为您没有任何用户到用户的关系,而且大多数时候您不会搜索任何不同于“通过 id 获取用户会话”的内容。

    将用户会话放入 Redis 是一种非常标准的解决方案,即使不是最常用的解决方案 :) 祝你好运!

    【讨论】:

      猜你喜欢
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-29
      • 2015-02-03
      • 2021-07-05
      • 2018-08-26
      相关资源
      最近更新 更多