Today
-
Yesterday
-
Total
-
  • Redis : HASH 자료구조 :: HSET , HGET , HGETALL , HEXISTS , HDEL , HINCRBY , HINCRBYFLOAT , HSTRLEN , HKEYS , HVALS
    DB/Redis 2023. 12. 12. 00:01

    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
    

Designed by Tistory / Custom by 얼거스