[spring boot 1.3.5] redis cluster 적용
spring boot에 레디스 클러스트와 연동하는 코드를 작성했는데,
http://docs.spring.io/spring-data/redis/docs/current/reference/html/#cluster 예제를 사용하면 잘 동작한다.
build.gradle 추가
compile("org.springframework.data:spring-data-redis:1.7.2.RELEASE")
compile("redis.clients:jedis:2.8.1")
applicationproperties
spring.redis.cluster.nodes=...
spring.redis.cluster.timeout=5
spring.redis.cluster.max-redirects=3
코드
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@ConfigurationProperties(prefix = "spring.redis.cluster")
public class ClusterConfigurationProperties {
List<String> nodes;
public List<String> getNodes() {
return nodes;
}
public void setNodes(List<String> nodes) {
this.nodes = nodes;
}
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Set;
@Service
public class RedisClusterService {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Resource(name="redisTemplate")
private ListOperations<String, String> listOps;
public void addKeyValue(String key, String value) {
listOps.leftPush(key, value);
}
public String getKey(String key) {
return listOps.rightPop(key);
} }
set, zset, list, 일반 key-value에 대한 command는 아래 커맨드를 사용하여 의미있는 커맨드를 카테고리 별로 확인/실행할 수 있다.
redisTemplate.opsForSet() redisTemplate.opsForZSet() redisTemplate.opsForValue() redisTemplate.opsForList()
...