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()
...




Posted by '김용환'
,