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

3
我发现自己在同一个应用程序中需要处理给定Redis实例的更多模式,使用Spring Data Redis 1.1.0.RELEASE和Jedis客户端版本2.1.0。
在运行时,我必须根据给定的规则(这是“给定的”,我不能改变它),相应地使用正确的模式来查询数据库,这个规则会不时地改变。
我想知道以下哪种方法是正确的:
  1. 在会话(redisTemplate.execute)中,尝试检索会话的连接并在开始插入之前更改DB索引(SELECT redis命令,仅供澄清);
  2. 保留多个连接池,每个模式一个,然后使用正确的池而不是选择模式。
我猜第二种方法是“正确的方式”,但我想避免用太多的池来过载应用程序。我应该使用哪一个?你有其他见解吗?
1个回答

3
我在这篇博客文章中为您找到了相关信息:
注意: 虽然数据库索引是可配置的,但JedisConnectionFactory仅支持一次连接到一个Redis数据库。由于Redis是单线程的,因此建议您设置多个Redis实例而不是在单个进程中使用多个数据库。
这似乎表明最好有几个redis连接工厂,每个连接到不同的redis实例。
附言:我偶然发现了你的帖子,因为我有与你相同的疑问,上面的博客文章提供了有趣的信息...

你的答案有些好的观点,不错。问题发布后不久,我最终使用了一个单独的Redis实例,每次都选择架构(而不是为每个实例使用池,只使用一个池,选择数据库):这可能会导致性能问题,但Redis响应速度也相当快,目前对我来说已经足够了。这让我认为,这个问题没有一个单一的答案,我想创建一个答案,解释每种可能性及其利弊(我需要时间来做到这一点)(这就是为什么我仍然不接受你的答案)。 - reallynice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接