IT recording...
[Redis] Redis의 자료구조, 명령어 - (2) 본문
[더 편하게 보고 싶다면 -> 원본 링크]
https://adorable-aspen-d23.notion.site/Spring-Spring-Boot-Redis-6ecda14328a34ec1a0e3dc2990a51277
4. Redis의 자료구조, 명령어
- 완전 도움 된 글
- 아래에서 소개하는 애들은 cli에서 사용하는 명령어들이다.
- spring 에서는 비슷하게 생긴 거 골라서 쓰면 된다.
ex) //cli에서 **zrevrange** keyabc 0 8 //spring에서 Set<String> redisCrudTemplate = zSetOps.**reverseRange**("keyabc", 0, 8);
4-1. String
//KEY -> 자신이 설정할 키 값
1. get KEY //KEY에 해당하는 value를 가져온다.
2. set KEY value //KEY에 value를 저장한다.
3. del KEY //KEY를 삭제한다.
4-2. List
1. lpush KEY value //List의 index 0 쪽으로 데이터를 삽입한다. (왼쪽 삽입)
2. rpush KEY value //List의 index last 쪽으로 데이터를 삽입한다. (오른쪽 삽입)
3. lrange KEY start end //start부터 end까지 데이터를 반환한다. (lrange KEY 0 5 면 0,1,2,3,4 반환)
4. lpop KEY //index 0쪽의 데이터를 pop
5. rpop KEY //index last쪽의 데이터를 pop
6. llen KEY //List의 길이 반환(데이터 갯수)
4-3. Set
- 중복되지 않는 값을 데이터로 갖는다.
- value를 member라고 부른다. (굳이..)
- 좋아요를 누른 사람 수, 특정 상품을 본 사람 수 등을 나타내는 데 사용된다.
1. sadd KEY member //Set에 추가
2. srem KEY //삭제
3. smembers KEY //모든 member(value)를 조회한다.
4. scard KEY //Set에 속해있는 member의 갯수를 조회한다.
5. spop //Set에서 무작위로 member를 가져온다.
4-4. Hash
- 내부에 또 다른 Key-Value로 이루어진 자료구조
1. hset KEY field value //field-value 추가
2. hget KEY field //field로 value 조회한다.
3. hdel KEY field //제거
4. hlen KEY //field 갯수를 반환한다.
5. hgetAll KEY // field와 value를 모두 반환한다.
6. hkeys key //모든 field를 반환한다.
7. hvals KEY //모든 value를 반환한다.
4-5. Sorted Set
- 중복되지 않는 값을 데이터로 갖는다.
- 가중치(score)를 가지고 있고, 이걸로 자동 정렬 해준다.
- score가 같으면 value로 정렬된다. (동점 처리가 안된다. → 따로 처리해줘야함)
- value는 중복되지 않으며, score는 중복될 수 있다.
- 랭킹 등에 사용된다.
1. zadd KEY score member //추가
2. zcard KEY //Sorted Set에 속해있는 member의 갯수를 조회한다.
3. zrange KEY start stop // start부터 stop까지의 랭킹을 조회한다. (내림차순) (zrange KEY 0 5면 0,1,2,3,4,5 조회)
4. zrevrange KEY start stop // 오름차순 랭킹 조회 (zrevrange KEY 0 5 면 0,1,2,3,4 조회)
5. zrangebyscore KEY min max //min<= score <= max 인 member 조회
등
공식문서에서 원하는 자료구조를 선택하면 존재하는 명령어들을 확인할 수 있다.
Redis 자료 구조 - ZSet (Sorted Set)
zSet의 명령어들이 잘 정리되어 있는 곳
4-6. expire
- 지정한 시간 이후 KEY를 자동으로 삭제하는 명령어
- KEY-value쌍에 Time to Live를 설정할 수 있다.
- 주의) expire 명령 사용 이후 set, getset 명령을 사용하면 expire명령이 삭제된다.
- 따라서 다시 설정해야 함
- (단, incr, lpush, sadd, zadd, hset과 같은 명령어는 그대로 유지됨)
1. expire KEY member second //KEY에 만료 시간(ttl)을 설정한다.
2. ttl KEY //남은 ttl을 초단위로 확인한다.
원래 player라는 sorted set이 존재했는데 10초 만료시간 줘서 사라진 모습
4. Redis의 자료구조, 명령어
- 완전 도움 된 글
- 아래에서 소개하는 애들은 cli에서 사용하는 명령어들이다.
- spring 에서는 비슷하게 생긴 거 골라서 쓰면 된다.
ex) //cli에서 **zrevrange** keyabc 0 8 //spring에서 Set<String> redisCrudTemplate = zSetOps.**reverseRange**("keyabc", 0, 8);
4-1. String
//KEY -> 자신이 설정할 키 값
1. get KEY //KEY에 해당하는 value를 가져온다.
2. set KEY value //KEY에 value를 저장한다.
3. del KEY //KEY를 삭제한다.
4-2. List
1. lpush KEY value //List의 index 0 쪽으로 데이터를 삽입한다. (왼쪽 삽입)
2. rpush KEY value //List의 index last 쪽으로 데이터를 삽입한다. (오른쪽 삽입)
3. lrange KEY start end //start부터 end까지 데이터를 반환한다. (lrange KEY 0 5 면 0,1,2,3,4 반환)
4. lpop KEY //index 0쪽의 데이터를 pop
5. rpop KEY //index last쪽의 데이터를 pop
6. llen KEY //List의 길이 반환(데이터 갯수)
4-3. Set
- 중복되지 않는 값을 데이터로 갖는다.
- value를 member라고 부른다. (굳이..)
- 좋아요를 누른 사람 수, 특정 상품을 본 사람 수 등을 나타내는 데 사용된다.
1. sadd KEY member //Set에 추가
2. srem KEY //삭제
3. smembers KEY //모든 member(value)를 조회한다.
4. scard KEY //Set에 속해있는 member의 갯수를 조회한다.
5. spop //Set에서 무작위로 member를 가져온다.
4-4. Hash
- 내부에 또 다른 Key-Value로 이루어진 자료구조
1. hset KEY field value //field-value 추가
2. hget KEY field //field로 value 조회한다.
3. hdel KEY field //제거
4. hlen KEY //field 갯수를 반환한다.
5. hgetAll KEY // field와 value를 모두 반환한다.
6. hkeys key //모든 field를 반환한다.
7. hvals KEY //모든 value를 반환한다.
4-5. Sorted Set
- 중복되지 않는 값을 데이터로 갖는다.
- 가중치(score)를 가지고 있고, 이걸로 자동 정렬 해준다.
- score가 같으면 value로 정렬된다. (동점 처리가 안된다. → 따로 처리해줘야함)
- value는 중복되지 않으며, score는 중복될 수 있다.
- 랭킹 등에 사용된다.
1. zadd KEY score member //추가
2. zcard KEY //Sorted Set에 속해있는 member의 갯수를 조회한다.
3. zrange KEY start stop // start부터 stop까지의 랭킹을 조회한다. (내림차순) (zrange KEY 0 5면 0,1,2,3,4,5 조회)
4. zrevrange KEY start stop // 오름차순 랭킹 조회 (zrevrange KEY 0 5 면 0,1,2,3,4 조회)
5. zrangebyscore KEY min max //min<= score <= max 인 member 조회
등
공식문서에서 원하는 자료구조를 선택하면 존재하는 명령어들을 확인할 수 있다.
Redis 자료 구조 - ZSet (Sorted Set)
zSet의 명령어들이 잘 정리되어 있는 곳
4-6. expire
- 지정한 시간 이후 KEY를 자동으로 삭제하는 명령어
- KEY-value쌍에 Time to Live를 설정할 수 있다.
- 주의) expire 명령 사용 이후 set, getset 명령을 사용하면 expire명령이 삭제된다.
- 따라서 다시 설정해야 함
- (단, incr, lpush, sadd, zadd, hset과 같은 명령어는 그대로 유지됨)
1. expire KEY member second //KEY에 만료 시간(ttl)을 설정한다.
2. ttl KEY //남은 ttl을 초단위로 확인한다.
원래 player라는 sorted set이 존재했는데 10초 만료시간 줘서 사라진 모습
'Spring' 카테고리의 다른 글
[Redis] Spring + Redis 간단한 API 작성 - (3) (0) | 2022.04.01 |
---|---|
[Redis] Redis란? - (1) (0) | 2022.04.01 |
[스프링 JPA1] 3. 컨트롤러 (0) | 2022.02.15 |
[스프링 JPA1] 2. 도메인 개발 (0) | 2022.02.15 |
[Spring] 개발 중 마주한 오류들 - 1 (0) | 2022.02.15 |
Comments