当前位置: 首页 > 知识库问答 >
问题:

多个Redis数据库有什么意义?

鲁昕
2023-03-14

如果我分割成多个数据库,所有的东西仍然是单线程的,而且我仍然只能使用一个核心。如果我只是在同一个盒子上启动另一个Redis实例,我将使用一个额外的核心。最重要的是,我不能给Redis数据库命名,也不能给它们任何更符合逻辑的标识符。那么,说完所有这些,为什么/什么时候我会想要使用多个Redis数据库,而不是仅仅为我想要的每个额外数据库构建一个额外的Redis实例呢?与此相关的是,为什么Redis不尝试为我添加的每个额外数据库使用一个额外的核心?跨数据库单线程的优势是什么?

共有1个答案

李勇
2023-03-14

在原则上,同一实例上的Redis数据库与RDBMS数据库实例中的模式没有区别。

那么,说完所有这些,为什么/什么时候我会想要使用多个Redis数据库,而不是仅仅为我想要的每个额外数据库构建一个额外的Redis实例呢?

在同一个redis实例中使用redis数据库有一个明显的优势,那就是管理。如果您为每个应用程序创建一个单独的实例,假设您有3个应用程序,这是3个单独的redis实例,每个实例在生产中可能都需要一个HA的从属,因此总共有6个实例。从管理的角度来看,这会变得非常混乱,因为您需要监视所有的Redi,进行升级/补丁,等等。如果您不打算重载具有高I/O的Redi,那么只要满足您的SLA,带有一个从属的单个实例就会更简单,更容易管理。

 类似资料:
  • 问题内容: 因此,我来​​到了一个地方,我想将存储在Redis中的数据分割到单独的数据库中,因为有时我需要对一种特定类型的数据使用keys命令,并希望将其分离以使其更快。 如果我细分为多个数据库,那么所有内容仍然都是单线程的,而且我仍然只能使用一个内核。如果我只是在同一盒子上启动另一个Redis实例,那么我将使用一个额外的内核。最重要的是,我无法命名Redis数据库,也无法给它们提供任何更逻辑的标

  • 我对redis是新的,所以我不知道更多关于它复杂的技术细节。但是让我把我的场景放在这里:我在同一个服务器上运行两个网站,我希望redis在这两个网站上工作。在搜索中,我发现可以通过如下所示为同一服务器实例上的不同数据库分配不同的索引来做到这一点: 这对我来说是理想的,因为我可以在同一个实例中缓存我的两个数据库。但后来我碰到了多个Redis数据库有什么意义?如何在redis数据库之间进行转换?链接上

  • 问题内容: 我有一个Redis实例,其中有两个数据库。现在,我想设置第二个实例并复制第一个实例,但是第二个实例应该仅具有一个数据库,并且仅复制第一个实例中的db 0。当我尝试执行此操作(为第二个实例设置)时,我在Redis日志文件中收到以下错误消息: 我尝试使用redis-dump,但是尝试将生成的转储导入新实例时出现错误。(我认为与2 dbs和1 db无关,而是redis-dump中的一个错误,

  • 我试图更多地熟悉Redis,我发现Redis6的发行说明如下: Redis6进入了一个新时代:虽然它保留了一个核心的单线程数据访问接口,但I/O现在是线程化的。 保留“核心单线程数据访问接口”是否意味着所有数据访问命令(如GET、SET),无论redis实例中的哪个数据库,都必须通过这个接口(而不是使用多个redis实例时的多个数据访问接口)? 谢了!

  • 我们将redis用于缓存和会话。我希望能够使用分离redis数据库(相同的服务器,只是不同的数据库)为每个情况,以及能够使用相同的服务器生产和预生产。我知道Redis允许您在一台服务器上定义多个数据库(http://www.redisocokbook.org/multiple_databases.html),但是我不知道如何将其翻译成Redis。配置(至少根据文档http://laravel.co

  • 维基百科说Redis是一个内存数据库,但也说它可以“至少每2秒将数据持久化到磁盘”。我觉得这两件事是互相排斥的。它能在磁盘上存储数据,怎么能被认为是内存中的呢?我假设内存中的定义意味着它不存储到磁盘中。 这是一个类似的问题:Redis概念:在内存中还是在DB中?不同的是,他询问的是持久性实现。我的问题是关于内存中与持久性的概念。