Java SpringDataRedis-多模式-在会话中更改模式(获取连接)与使用多个连接池

Java SpringDataRedis-多模式-在会话中更改模式(获取连接)与使用多个连接池,java,database,connection,redis,spring-data-redis,Java,Database,Connection,Redis,Spring Data Redis,我发现自己必须使用SpringDataRedis1.1.0.RELEASE和JedisClientVersion2.1.0在同一个应用程序中处理给定Redis实例的更多模式 在运行时,我必须根据给定的规则(这是“给定的”,我无法更改),使用正确的模式查询数据库,该规则会不时更改 我想知道以下哪种方法是正确的: 在会话(redisTemplate.execute)中,在开始插入之前,尝试检索会话的连接并更改DB索引(SELECT redis命令,仅用于澄清) 保留多个连接池,每个模式一个,然后使用

我发现自己必须使用SpringDataRedis1.1.0.RELEASE和JedisClientVersion2.1.0在同一个应用程序中处理给定Redis实例的更多模式

在运行时,我必须根据给定的规则(这是“给定的”,我无法更改),使用正确的模式查询数据库,该规则会不时更改

我想知道以下哪种方法是正确的:

  • 在会话(redisTemplate.execute)中,在开始插入之前,尝试检索会话的连接并更改DB索引(SELECT redis命令,仅用于澄清)
  • 保留多个连接池,每个模式一个,然后使用正确的池,而不是选择模式

  • 我猜第二种方式是“正确的”,但我会避免应用程序因池太多而过载。我应该用哪一种?您还有其他见解吗?

    我在这方面为您找到了一些相关信息:

    注意:虽然数据库索引是可配置的,但是 JedisConnectionFactory仅支持连接到一个Redis数据库 一次。因为Redis是单线程的,所以建议您设置 备份多个Redis实例,而不是使用多个数据库 在单个过程中

    这似乎表明最好有几个redis连接工厂,每个工厂连接到不同的redis实例


    另外,我无意中发现了你的帖子,因为我和你有同样的问题,上面的博客帖子提供了有趣的信息…

    你的答案很好,这是一个很好的答案。问题发布后不久,我就使用了一个redis实例,每次都选择模式(不是每个实例一个池,只有一个池,选择数据库):这可能会导致性能问题,但redis的响应速度也相当快,目前这对我来说已经足够了。这让我觉得这个问题没有一个单一的答案,我想创造一个答案,解释每一种可能性,以及它的利弊(我需要时间去做)(这就是为什么我仍然不接受你的答案)。