* @author emacsist
*/
@Configuration
public class RedisConfig {
@Bean
@Primary
public LettuceConnectionFactory jedisConnectionFactory() {
return new LettuceConnectionFactory(getRedisStandaloneConfiguration(webHost, webPort, webPwd, webDB));
}
@Bean
@Primary
public RedisTemplate<String, String> redisTemplate(@Autowired @Qualifier("jedisConnectionFactory") LettuceConnectionFactory jedisConnectionFactory, @Autowired StringRedisSerializer stringRedisSerializer) {
return getRedisTemplate(jedisConnectionFactory, stringRedisSerializer);
}
public static RedisStandaloneConfiguration getRedisStandaloneConfiguration(final String host, final int port, final String pwd, final int db) {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(host, port);
redisStandaloneConfiguration.setPassword(RedisPassword.of(pwd));
redisStandaloneConfiguration.setDatabase(db);
Loggers.RUNNING_LOG.info("inited redis connection factory {}:{}", host, port);
return redisStandaloneConfiguration;
}
public static RedisTemplate<String, String> getRedisTemplate(final LettuceConnectionFactory redisConnectionFactory, final StringRedisSerializer stringRedisSerializer) {
RedisTemplate<String, String> redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(stringRedisSerializer);
redisTemplate.setValueSerializer(stringRedisSerializer);
redisTemplate.setHashKeySerializer(stringRedisSerializer);
redisTemplate.setHashValueSerializer(stringRedisSerializer);
Loggers.RUNNING_LOG.info("inited redis template {}:{}", redisConnectionFactory.getHostName(), redisConnectionFactory.getPort());
return redisTemplate;
}
}