(Redis) 레디스 데이터구조와 명령어 사용2

1. 해시데이터


1) hmset

명령은 주어진 필드와 값의 쌍을 해시 데이터에 저장한다. 즉, 주어진 모든 키와 값들을 저장하는데, 인자로 입력되는 필드와 값의 쌍은 다중입력이 가능하다.

2) hsetnx

주어진 필드가 존재하지 않을 떄 저장한다. 만약 주어진 필드가 존재한다면 값은 저장되지 않는다.

3) hmget

주어진 필드 목록을 주어진 키에서 조회한다.

4) hlen

주어진 키에 저장된 필드의 개수를 조회한다.
주어진 키의 데이터형이 해시가 아니면 오류를 돌려준다.

4) hdel

주어진 키에 저장된 필드를 제거한다.



<숫자의 증감> 

해시에 저장된 데이터의 필드값이 숫자일 때 hincrby, hincrbyfloat 명령으로 증감처리를 할 수 있다. 문자열 데이터에서 지원하는 숫자 증감 명령들과는 다르게 해시명령은 증가 명령만 을 지원한다. 숫자의 감소를 처리하기 위해서는 명령의 인자에 음수를 입력하면 된다.

1) hincrby

주어진 키에 저장된 필드에 숫자 증감처리를 한다. 만약 주어진 키가 존재하지 않으면 새로운 해시데이터를 생성한다.

2) hincrbyfloat

주어진 키에 저장된 필드에 숫자 증감처리를 한다. 단, 지정값은 배정밀도 flaot값이어야 하며, 소수점은 17자리로 고정되어 있다.


<해시데이터의 키 목록 조회>

해시데이터 저장된 모든 키의목록과 모든 값의 목록을 조회할 때는 hgetall을 사용하면 된다. 키의 목록이나 값의 목록만을 조회하는 명령은 hkeys, hvals다.




2. 셋 데이터


<정렬된 셋 데이터>

* 가중치 변경

1) zincrby

주어진 키에 저장된 셋 데이터 중 지정된 요소의 가중치를 입력된 값만큼 증가시킨다.

2) zrank

주어진 키에 저장된 셋 데이터 중 지정된 지정된 요소의 순위를 조회한다. 조회되는 순위는 0부터 시작하며, 정렬은 가중치 오름차순이다. 예를들어, 5개의 요소가 저장된 정렬된 셋 데이터에서 가중치가 가장 작은 요소의 순위는 0이며 가중치가 가장큰 요소의 순위는 4이다.

3) zrevrank

주어진 키에 저장된 셋 데이터 중 지정된 요소의 순위를 조회한다. 조회되는 순위는 0부터 시작하며, 정렬은 가중치 내림차순이다. 즉, zrank 명령과 반대의 정렬 상태를 가진다.


**주요 정렬된 셋 명령과 의미**

zrangebyscore : 정렬된 셋의 점수 범위에 해당하는 데이터 조회
zremrangebyrank : 정렬된 셋에서 순위에 해당하는 범위의 데이터 제거
zremrangebyscore : 정렬된 셋에서 가중치에 해당하는 범위의 데이터 제거


<순위 처리와 조회>

1) zscore

주어진 키에 저장된 셋 데이터 중 지정된 요소의 가중치를 조회한다.

2) zrevrangebyscore

지정된 정렬된 셋에 저장된 데이터의 가중치 범위에 해당하는 요소의 목록을 조회한다.
WITHSCORES 키워드를 추가하면 가중치를 함께 조회할 수 있으며, LIMIT키워드를 사용하여 조회되는 목록 수를 조절할 수 있다.

댓글

이 블로그의 인기 게시물

(ElasticSearch) 결과에서 순서 정렬

(네트워크)폴링방식 vs 롱 폴링방식

(18장) WebSocekt과 STOMP를 사용하여 메시징하기