Skip to content

Instantly share code, notes, and snippets.

@jeonguk
Last active January 10, 2018 06:54
Show Gist options
  • Save jeonguk/0f58f2c03ca9b7659a0f1bff81b2666e to your computer and use it in GitHub Desktop.
Save jeonguk/0f58f2c03ca9b7659a0f1bff81b2666e to your computer and use it in GitHub Desktop.
Spring - Embeded Redis configuration
package com.jeonguk.web.config;
import static java.util.stream.Collectors.joining;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
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 lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Protocol;
import redis.embedded.RedisServer;
@Slf4j
@Configuration
public class RedisConfig {
@Bean
public RedisServer redisServer() {
RedisServer.builder().reset();
return RedisServer.builder().port(Protocol.DEFAULT_PORT).build();
}
@Bean
JedisConnectionFactory jedisConnectionFactory() {
return new JedisConnectionFactory();
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(jedisConnectionFactory());
return template;
}
@PostConstruct
public void start() {
log.info("starting redis...");
if (!redisServer().isActive()) redisServer().start();
log.info("redis listen ports: {}", redisServer().ports().stream()
.map(Object::toString).collect(joining(",")));
}
@PreDestroy
public void stop() {
log.info("shutting down redis...");
redisServer().stop();
log.info("bye!");
}
}
@jeonguk
Copy link
Author

jeonguk commented Jan 7, 2018

	<dependency>
		<groupId>org.springframework.data</groupId>
		<artifactId>spring-data-redis</artifactId>
		<version>1.6.2.RELEASE</version>
	</dependency>
	<dependency>
		<groupId>redis.clients</groupId>
		<artifactId>jedis</artifactId>
		<version>2.5.1</version>
	</dependency>
	<dependency>
		<groupId>com.github.kstyrc</groupId>
		<artifactId>embedded-redis</artifactId>
		<version>0.6</version>
	</dependency>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment