Redis 의 간단 한 응용

큰 신의 인공지능 튜 토리 얼 을 강력 추천 합 니 다.http://www.captainbed.net/zhanghan
1. Redis 시작 (이전 블 로그 참조)
      1. 컴퓨터 버 전의 시작 명령 은. / redis - server 또는. / redis - server redis. conf (/ usr / local / redis / 에서 실행) 를 사용 할 수 있 습 니 다.
      2. 클 러 스 터 버 전의 시작 명령 사용. / start - all. sh (usr / local / redis - cluster / 아래)
2. 설정 파일 관리 사용 방법 을 사용 하지 않 음
     1. 단기 판 테스트
 
 //     
    @Test
    public void testJedisSingle() throws Exception{
//            jedis  
        Jedis jedis = new Jedis("192.168.159.219",6379);
        jedis.set("test","hello jedis");
        String string = jedis.get("test");
        System.out.println(string);
        jedis.close();
    }

   하지만 이렇게 하면 귀 찮 습 니 다. 매번 사용 할 때마다 new Jedis 대상 이 필요 하기 때문에 최적화 하고 연결 풀 을 사용 합 니 다.
 
 
 //   :     
    @Test
    public void testJedisPool() throws Exception{
        //         
        //         
        JedisPool jedisPool = new JedisPool("192.168.159.219",6379);
        //           
        Jedis jedis = jedisPool.getResource();
        String result = jedis.get("test");
        System.out.println(result);
        //jedis      
        jedis.close();
        //      ,     
        jedisPool.close();
    }

 
    2. 클 러 스 터 테스트
 
 
//  redis  
    @Test
    public void testJedisCluster() throws Exception{
        //    JedisCluster  
        Set nodes = new HashSet<>();
        nodes.add(new HostAndPort("192.168.159.219",7001));
        nodes.add(new HostAndPort("192.168.159.219",7002));
        nodes.add(new HostAndPort("192.168.159.219",7003));
        nodes.add(new HostAndPort("192.168.159.219",7004));
        nodes.add(new HostAndPort("192.168.159.219",7005));
        nodes.add(new HostAndPort("192.168.159.219",7006));

        // nodes          
        //JedisCluster        
        JedisCluster jedisCluster = new JedisCluster(nodes);
        jedisCluster.set("name","zhangsan");
        jedisCluster.set("value","100");
        String name = jedisCluster.get("name");
        String value = jedisCluster.get("value");
        System.out.println(name);
        System.out.println(value);
        //         
        jedisCluster.close();

    }

 
       한 걸음 한 걸음 최적화 되 었 지만 우리 가 사용 할 때 매번 연결 항목 을 설정 해 야 합 니 다. 219 기계 가 고장 나 면 우 리 는 Redis 를 사용 하 는 모든 곳 에서 host 의 값 을 수정 해 야 합 니 다. 해결 방법 은 Spring 의 설정 파일 을 통 해 관리 하 는 것 입 니 다.
 3. 프로필 관리 사용 방법
    우 리 는 Redis 의 사용 방법 을 봉인 하 는데 과정 은 다음 과 같다.
    1. Redis 의 인터페이스 클래스 (JedisClient 이름)
 
import com.sun.tools.corba.se.idl.StringGen;

/**
 *
 * @author huan
 * @date 2017/11/11
 */
public interface JedisClient {
    public String set(String key,String value);
    public String get(String key);
    public Long hset(String key,String item,String value);
    public String hget(String key,String item);
    public Long incr(String key);
    public Long decr(String key);
    public Long expire(String key,int second);
    public Long ttl(String key);
}

 
    2. Redis 의 단일 버 전 구현 클래스 (JedisClient Single)
 
 
import com.taotao.rest.component.JedisClient;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

/**
 *redis      
 * @author huan
 * @date 2017/11/11
 */
public class JedisClientSingle implements JedisClient {
    @Autowired
    private JedisPool jedisPool;
    @Override
    public String set(String key, String value) {
        Jedis jedis = jedisPool.getResource();
        String result = jedis.set(key,value);
        jedis.close();
        return result;
    }

    @Override
    public String get(String key) {
        Jedis jedis = jedisPool.getResource();
        String result = jedis.get(key);
        jedis.close();
        return result;
    }

    @Override
    public Long hset(String key, String item, String value) {
        Jedis jedis =  jedisPool.getResource();
        Long result = jedis.hset(key,item,value);
        jedis.close();
        return result;
    }

    @Override
    public String hget(String key, String item) {
        Jedis jedis = jedisPool.getResource();
        String result = jedis.hget(key,item);
        jedis.close();
        return result;
    }

    @Override
    public Long incr(String key) {
        Jedis jedis = jedisPool.getResource();
        Long result = jedis.incr(key);
        jedis.close();
        return result;
    }

    @Override
    public Long decr(String key) {
        Jedis jedis = jedisPool.getResource();
        Long result = jedis.decr(key);
        jedis.close();
        return result;
    }

    @Override
    public Long expire(String key, int second) {
        Jedis jedis = jedisPool.getResource();
        Long result = jedis.expire(key,second);
        jedis.close();
        return result;
    }

    @Override
    public Long ttl(String key) {
        Jedis jedis = jedisPool.getResource();
        Long result = jedis.ttl(key);
        jedis.close();
        return result;
    }
}

 
    3. Redis 클 러 스 터 구현 클래스 (JedisClient Cluster)
 
 
import com.taotao.rest.component.JedisClient;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.JedisCluster;

/**
 *redis      
 * @author huan
 * @date 2017/11/11
 */
public class JedisClientCluster implements JedisClient{
    @Autowired
    private JedisCluster jedisCluster;

    @Override
    public String set(String key, String value) {
        return jedisCluster.set(key,value);
    }

    @Override
    public String get(String key) {
        return jedisCluster.get(key);
    }

    @Override
    public Long hset(String key, String item, String value) {
        return null;
    }

    @Override
    public String hget(String key, String item) {
        return jedisCluster.hget(key,item);
    }

    @Override
    public Long incr(String key) {
        return jedisCluster.incr(key);
    }

    @Override
    public Long decr(String key) {
        return jedisCluster.decr(key);
    }

    @Override
    public Long expire(String key, int second) {
        return expire(key,second);
    }

    @Override
    public Long ttl(String key) {
        return ttl(key);
    }
}

 
     4. Spring 프로필 에 Redis 설정
 
    (저 희 는 일반적으로 Redis 를 사용 하 는 것 은 데이터 뱅 크 의 압력 을 줄 이기 위해 서 입 니 다. 그래서 보통 Service 층 에 사용 합 니 다) 저 희 는 Service 층 의 spring 프로필 에 Redis 를 설정 합 니 다.
     단일 컴퓨터 설정:
 
!--  redis      -->







     클 러 스 터 설정:
 
 

        
                
                        
                                
                                        
                                        
                                
                                
                                        
                                        
                                
                                
                                        
                                        
                                
                                
                                        
                                        
                                
                                
                                        
                                        
                                
                                
                                        
                                        
                                
                        
                
        

        
        

      메모: 단일 판 과 클 러 스 터 판 은 동시에 설정 할 수 없고 하나만 선택 할 수 있 습 니 다.
 
      5. 단기 판 과 클 러 스 터 판 의 테스트 방법
      이상 의 설정 이 완 료 된 후에 우 리 는 테스트 방법 을 써 서 설정 파일 관리의 사용 방법 을 테스트 합 니 다. Spring 의 설정 파일 에 상기 클 러 스 터 판 이나 단기 판 중 하 나 를 설정 한 후에 다음 과 같은 방법 으로 테스트 할 수 있 습 니 다. 
 
//  spring       Redis    
    @Test
    public void testJedisClientSpring() throws Exception{
        //    spring  
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
        //      JedisClient  
        JedisClient jedisClient = applicationContext.getBean(JedisClient.class);
        //jedisClient  redis
        jedisClient.set("client1","1000");
        String string = jedisClient.get("client1");
        System.out.println(string);

    }

 
총결산
 
     이로써 우리 레 디 스 의 단기 판 과 클 러 스 터 판 도구 류 는 테스트 류 와 유사 하 게 작성 되 었 다.

좋은 웹페이지 즐겨찾기