因此,我来到了一个地方,我想将存储在Redis中的数据分割到单独的数据库中,因为有时我需要对一种特定类型的数据使用keys命令,并希望将其分离以使其更快。
如果我细分为多个数据库,那么所有内容仍然都是单线程的,而且我仍然只能使用一个内核。如果我只是在同一盒子上启动另一个Redis实例,那么我将使用一个额外的内核。最重要的是,我无法命名Redis数据库,也无法给它们提供任何更逻辑的标识符。因此,话虽这么说,我为什么/何时要使用多个Redis数据库,而不是仅仅为我想要的每个额外数据库分配一个Redis额外实例?与此相关的是,Redis为什么不尝试为我添加的每个额外数据库利用额外的内核?跨数据库单线程的优势是什么?
原则上,同一实例上的Redis数据库与RDBMS数据库实例中的架构没有区别。
因此,话虽这么说,我为什么/何时要使用多个Redis数据库,而不是仅仅为我想要的每个额外数据库分配一个Redis额外实例?
在同一redis实例中使用redis数据库有一个明显的优势,那就是管理。如果您为每个应用程序启动一个单独的实例,并且假设您有3个应用程序,那么这就是3个独立的Redis实例,每个实例在生产中可能都需要一个HA的从属,因此总共有6个实例。从管理的角度来看,这很快就会变得混乱,因为您需要监视所有这些,进行升级/修补等。如果您不打算通过高I / O重载Redis,那么具有从属的单个实例会更简单,并且只要满足您的SLA,就更易于管理。