openaire-usage-stats-api-r5/src/main/java/eu/dnetlib/usagestats/config/SpringRedisConfiguration.java

51 lines
2.0 KiB
Java
Executable File

package eu.dnetlib.usagestats.config;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* Created by tsampikos on 20/4/2017.
*/
@ConfigurationProperties(prefix = "usagestats")
@EnableConfigurationProperties
public class SpringRedisConfiguration {
private final Logger log = Logger.getLogger(this.getClass());
@Value("${usagestats.redis.hostname}")
private String hostname;
@Value("${usagestats.redis.port}")
private int port;
@Bean
public JedisConnectionFactory connectionFactory() {
JedisConnectionFactory connectionFactory = new JedisConnectionFactory();
connectionFactory.setHostName(hostname);
connectionFactory.setPort(port);
connectionFactory.setUsePool(false);
log.info("Opening redis connection to : " + connectionFactory.getHostName() + ":" + connectionFactory.getPort());
return connectionFactory;
}
@Bean
@Autowired
public RedisTemplate<String, String> redisTemplate() {
RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(connectionFactory());
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
return redisTemplate;
}
}