Redis : HASH 자료구조 :: HSET , HGET , HGETALL , HEXISTS , HDEL , HINCRBY , HINCRBYFLOAT , HSTRLEN , HKEYS , HVALS

김아무개·2023년 8월 8일
0

Redis

목록 보기
2/12

Redis에서 Hash 자료구조를 생성하고 검색하는 방법


HSET , HGET , HGETALL , HEXISTS , HDEL 정도만 익히고 나머지는 필요시 참고 !

SET , GET 과 비슷해서 Hash 자료구조만 눈에 익으면 금방 사용할 수 있을것 같다.



HSET

형태

HSET key field1 value1 [field2 value2 ...]

이해가 힘들었기 때문에 작성해보는 해석

Hash 자료구조를 갖는 key 라는 이름의 키를 생성하는데,
키 값 구조를 갖추어야 하는 key 의 데이터로
field1 value1 , field2 value2 .. 를 저장한다.
이때 key 의 데이터는 1개 이상 저장 되어야 한다.


ex )

HSET 명령문의 실행 결과로 출력 된 숫자는

key 이름의 키에

2개의 키-값 쌍을 저장했음을 알려주는 것이다.

생성된 key 목록을 조회해보면 key 1개만 보여진다.



HGET

형태

HGET key field

Hash 자료구조인 key가 가지고 있는 1개의 field 값만 출력해볼 수 있다.


Hash 자료구조인 key 키에서 field2 의 값 조회


Hash 자료구조인 key 키에서 field1 의 값 조회


Hash 자료구조인 key 키에서 모든 필드의 값을 조회해보려고 시도하면 에러남



HGETALL

형태

HGETALL key

Hash 자료구조인 key가 가지고 있는 모든 field 값을 배열 형태로 출력



HEXISTS

Hash 자료구조인 key 에서 찾고자 하는 field가 있는지 검색

형태

HEXISTS key field

field가 있다면 1 반환


field가 없다면 0 반환


key가 없어도 0 반환



HDEL

Hash 자료구조를 갖는 key의 field value 쌍을 삭제

형태

HDEL key field [field ...]

반환 값 : key에서 삭제된 field value 쌍 갯수



DEL

Hash 자료구조를 갖는 key를 삭제

형태

DEL key



HINCRBY

Hash INCRementBY
해시 자료형의 필드 값 증가 또는 감소 목적

형태

HINCRBY key field 증감숫자_정수

테스트를 위한 해시 데이터 셋팅 -> 키 이름 : test

HSET test name 김가나 score 90 weight 99.22

test 키의 score 값 10 증가

반환값 : 수정 된 값


test 키의 score 값 30 감소

반환값 : 수정 된 값




HINCRBYFLOAT

형태

HINCRBYFLOAT key field 증감숫자_실수

테스트를 위한 해시 데이터 셋팅 -> 키 이름 : test

HSET test name 김가나 score 90 weight 99.22

test 키의 weight 값 23.42 증가

반환값 : 수정 된 값


test 키의 weight 값 12.34 감소

반환값 : 수정 된 값


정수값이 들어있는 필드에도 적용 가능

test 키의 score 값 0.5 감소

오 부동소수점 이슈가 튀어나왔다
이 부분은 redis 자체적으로는 해결할 수 없다고 한다.
java 등의 언어에서 2차 가공을 하는것이 최선이라는 정보를 구글링으로 얻어내었다!



HSTRLEN

Hash 자료구조인 key의 field에 저장된 데이터의 길이를 알아낼 수 있다.

형태

HSTRLEN key field

테스트 데이터 셋팅


test 키의 name 필드의 데이터 길이 출력

6이 나올 줄 알았는데 9가 나왔다

redis 는
UTF-8 인코딩 설정이 되어있어서 한글 1자 당 3Byte로 해석된다!
EUC-KR한글 1자 당 2Byte


영어 문자열 길이 출력



HKEYS

Hash 자료구조를 가진 키에 저장된 필드 이름 모두 출력

형태

HKEYS key



HVALS

Hash 자료구조를 가진 키에 저장된 필드의 값들 모두 출력

형태

HVALS key

profile
Hello velog! 

0개의 댓글