【问题标题】:Different Redis databases with different passwords?不同的Redis数据库有不同的密码?
【发布时间】:2016-09-12 17:08:13
【问题描述】:

在 Redis 中有一个 authentication feature 和不同的 databases are possible,但是这些功能可以以安全的方式组合吗?

从 MySQL 我知道有一个用户管理,多个用户可以有多个密码,并且只能拥有一个数据库的权限。

出于安全原因,我希望在 Redis 中使用类似的,因为目前我可以使用 requirepass,但我必须将它添加到每个想要连接到 redis 的应用程序中。 (至少有一种方法可以为requirepass 使用多个密码吗?
而且我可以使用应用程序连接到一个数据库,但 AFAIK 这个应用程序也可以切换到另一个数据库。 (我至少可以以某种方式阻止这种切换吗?)

出于性能原因,我想避免并行运行多个 redis 实例。

【问题讨论】:

    标签: database security redis database-security


    【解决方案1】:

    不,但是 redis 非常轻量级,您只需在不同的端口上启动不同的实例。你说你不想“出于性能原因”,但这没有实际意义——一个空的 redis 几乎不需要内存,也几乎不需要 cpu。

    【讨论】:

      【解决方案2】:

      我会从最后开始:

      出于性能原因,我想避免并行运行多个 redis 实例。

      事实上恰恰相反 - 由于 Redis(大部分)是单线程的,因此并行运行多个实例正是您获得更好的服务器利用率和提高性能的方法。

      Redis 的数据库概念(也称为共享数据库或编号数据库)与 SQL 域的概念不同。 Redis 的数据库更像命名空间,除了共享同一个线程之外,它们还共享所有配置——包括身份验证密码。

      所以答案是否定的,您不能为每个数据库设置不同的密码。有关为什么您应该更喜欢专用 Redis 数据库的更多详细信息,请参阅:https://redislabs.com/blog/benchmark-shared-vs-dedicated-redis-instances

      【讨论】:

      • 好的,那只是另一个问题。在另一个用户下执行 redis 时,我认为它不再是单个线程。对吗?
      • 您启动的每个 Redis 进程(服务器)都是(同样,主要是 [disk io is offloaded])单线程。您可以在同一用户或不同用户下启动它们 - 除非服务器对每个用户强制执行资源配额,否则这是无关紧要的。
      猜你喜欢
      • 1970-01-01
      • 2017-01-05
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多