SpringMVC+MyBatis环境,Redis做缓存,求解如何在运行中自由切换Redis库?? 5C

Redis中有好几个库,想做缓存的时候将不同业务的数据分别存放在Redis的不同的库中,我用的是Spring的RedisTemplate类,这个类可以直接操作,但是我试了好多,就只能操作一个库,里面的JedisConnectionFactory类中,只能选择一个库,求解大神,怎么样才能在运行中自由的切换想要连接的库,达到将不同业务的数据存入不同的库这个目的!!

5个回答

可以初始化多个RedisTemplate类,对应各个配置,然后再aop层做数据库名的区分来决定具体使用哪个redis库

其实想redis这种nosql,再去使用spring其实意义没多大,个人不建议在redis-client上在封装一层spring-data。反而把简单的事情变复杂了。
下面我试了一下是可以的做到切换数据库。

 JedisConnectionFactory jedisConnectionFactory = (JedisConnectionFactory) stringRedisTemplate.getConnectionFactory();
 jedisConnectionFactory.setDatabase(i);
 stringRedisTemplate.setConnectionFactory(jedisConnectionFactory);
 ValueOperations valueOperations = stringRedisTemplate.opsForValue();

选择对应的数据库,select

这个和项目中使用读写分离基本是一样的,可以利用spring 的aop来实现 但是你的业务就需要有一定的命名规范,不同的业务执行不同的库 就是 这样的,希望可以帮助到你

可以配置多个数据源,也就是多个dataSource,这样在使用的时候有针对性的去使用。如果单单是想做集群的话,我建议可以直接使用现成的codis去完成,codis本身就是redis的集群版本有许多组建可以直接使用的,你要不试试看呢

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问