我正在使用spring-MVC和spring-data-redis来控制Redis集群池。 当我使用jedisCluster.subscribe(new JedisPubSubListener(),“ bb”);
我的应用程序将存储此代码(我尝试使用线程,但另一个无法在@autowerid中获取该实例)。 我用谷歌搜索的很多方法都指向使用spring-boot。 但我可以更改项目的结构。 因此,我认为在Spring初始化时,我可以注册一个监听器来使用。 但是我可以用我的原始代码来调味。
如果我使用以下代码,有人可以为我举例:
@Configuration
public class RedisClusterConfig {
private List<String> redisNodes(){
return Arrays.asList(redisNode.split(","));
}
@Bean
JedisPoolConfig jedisPoolConfig(){
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(maxTotal);
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMinIdle(minIdle);
jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
jedisPoolConfig.setTestOnBorrow(testOnBorrow);
jedisPoolConfig.setTestOnReturn(testOnReturn);
jedisPoolConfig.setTestWhileIdle(testWhileIdle);
return jedisPoolConfig;
}
@Bean
RedisConnectionFactory redisClusterConnectionFactory(JedisPoolConfig
jedisPoolConfig){
JedisConnectionFactory redisConnectionFactory = new
JedisConnectionFactory(new RedisClusterConfiguration(redisNodes()));
redisConnectionFactory.setPoolConfig(jedisPoolConfig);
return redisConnectionFactory;
}
}
答案 0 :(得分:0)
这就是我在配置中进行设置的方式。
@Bean
public RedisMessageListenerContainer redisMessageListenerContainer() {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(redisConnectionFactory);
container.addMessageListener(consumerRedis(),topic());
return container;
}
@Bean
public ConsumerRedisListener consumerRedis() {
return new ConsumerRedisListener();//this class implements MessageListener
}
@Bean
public ChannelTopic topic() {
return new ChannelTopic("channel");
}