Jedis


Java에서 Jedis Library를 사용하여 Redis에 연동한다.



https://mvnrepository.com/artifact/redis.clients/jedis/2.9.0








Connection Pool 및 set, get, 만료시간 지정



단순 테스트 용도라면 그냥 접근해도 좋지만, 성능을 염두하고 있다면 JedisPool을 사용해야 하며 Apache-common library도 함께 필요하다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
 
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        String host = "127.0.0.1";
        int port = 6379;
        int timeout = 3000;
        int db = 0;
        
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        
        JedisPool pool = new JedisPool(jedisPoolConfig,host,port,timeout,null,db);
        
        Jedis jedis = pool.getResource();
        
        //Connect 체크 
        System.out.println(jedis.isConnected());
        
jedis.set("key4""6");
        jedis.set("key5""6");
        
        // 데이터의 만료시간을 지정
        jedis.expire("key5",1);
        
        System.out.println(jedis.get("key5"));
        
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(jedis.get("key5"));
    
        if( jedis != null ){
            jedis.close();
        }
        pool.close();
        
    }
 
}
 
cs



>>true

>>6

>>null









list, hashes, set, sorted set 사용



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
 
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
 
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        String host = "127.0.0.1";
        int port = 6379;
        int timeout = 3000;
        int db = 2;
 
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
 
        JedisPool pool = new JedisPool(jedisPoolConfig, host, port, timeout, null, db);
 
        Jedis jedis = pool.getResource();
 
        // list 형태로 입력
        jedis.lpush("id""choi");
        jedis.lpush("id""keach");
        jedis.lpush("id""hoo");
 
        // 첫번 째 요소를 제거하고 꺼냄
        System.out.println(jedis.lpop("id"));
        // 마지막 요소를 제거하고 꺼냄
        System.out.println(jedis.rpop("id"));
 
        // hash 형태로 입력
        Map<StringString> score = new HashMap<>();
        score.put("kim""220");
        score.put("park""240");
 
        jedis.hmset("score", score);
 
        Map<StringString> getMap = jedis.hgetAll("score");
 
        Set<String> key = getMap.keySet();
 
        Iterator<String> keyIter = key.iterator();
 
        while (keyIter.hasNext()) {
            System.out.println(getMap.get(keyIter.next()));
        }
 
        // Set 형태로 입력
        jedis.sadd("user""user00");
        jedis.sadd("user""user01");
        jedis.sadd("user""user02");
 
        Set<String> user = jedis.smembers("user");
 
        Iterator<String> iter = user.iterator();
 
        while (iter.hasNext()) {
            System.out.println(iter.next());
        }
        
        
        // Sorted Set 형태로 입력
        jedis.zadd("sortedUser"1000"user00");
        jedis.zadd("sortedUser"1048"user01");
        jedis.zadd("sortedUser"1024"user02");
        
 
        if (jedis != null) {
            jedis.close();
        }
        pool.close();
 
    }
 
}
 
cs





특이하게 봐야 할 곳이 있다면 SortedUser 키 . 

user02의 경우 마지막에 추가했지만 확인해보면 가중치 값으로 인해 중간에 삽입된 것을 확인 할 수 있다.






마지막으로 키 삭제에 대한 코드는 다음과 같다.


jedis.del("key");







참고

http://jdm.kr/blog/202




'Cloud & NoSQL & Middleware > Redis' 카테고리의 다른 글

Redis 명령어  (0) 2018.08.04
Redis Pub/Sub Model  (0) 2018.07.01
MacOS에서 Redis 설치 및 실행  (0) 2018.07.01
Redis 특징(3) - Redis Persistance  (0) 2018.06.29
Redis 특징 (2) - 지원 데이터 타입  (0) 2018.06.29

+ Recent posts