Redis에서 Hash 자료구조를 생성하고 검색하는 방법
HSET , HGET , HGETALL , HEXISTS , HDEL 정도만 익히고 나머지는 필요시 참고 !
SET , GET 과 비슷해서 Hash 자료구조만 눈에 익으면 금방 사용할 수 있을것 같다.
HSET key field1 value1 [field2 value2 ...]
이해가 힘들었기 때문에 작성해보는 해석
Hash 자료구조를 갖는 key 라는 이름의 키를 생성하는데,
키 값 구조를 갖추어야 하는 key 의 데이터로
field1 value1 , field2 value2 .. 를 저장한다.
이때 key 의 데이터는 1개 이상 저장 되어야 한다.
HSET 명령문의 실행 결과로 출력 된 숫자는
key 이름의 키에
2개의 키-값 쌍을 저장했음을 알려주는 것이다.
생성된 key 목록을 조회해보면 key 1개만 보여진다.
HGET key field
Hash 자료구조인 key가 가지고 있는 1개의 field 값만 출력해볼 수 있다.
HGETALL key
Hash 자료구조인 key가 가지고 있는 모든 field 값을 배열 형태로 출력
Hash 자료구조인 key 에서 찾고자 하는 field가 있는지 검색
HEXISTS key field
Hash 자료구조를 갖는 key의 field value
쌍을 삭제
HDEL key field [field ...]
반환 값 : key에서 삭제된 field value 쌍 갯수
Hash 자료구조를 갖는 key
를 삭제
DEL key
Hash INCRementBY
해시 자료형의 필드 값 증가 또는 감소 목적
HINCRBY key field 증감숫자_정수
테스트를 위한 해시 데이터 셋팅 -> 키 이름 : test
HSET test name 김가나 score 90 weight 99.22
반환값 : 수정 된 값
반환값 : 수정 된 값
HINCRBYFLOAT key field 증감숫자_실수
테스트를 위한 해시 데이터 셋팅 -> 키 이름 : test
HSET test name 김가나 score 90 weight 99.22
반환값 : 수정 된 값
반환값 : 수정 된 값
정수값이 들어있는 필드에도 적용 가능
오 부동소수점 이슈가 튀어나왔다
이 부분은 redis 자체적으로는 해결할 수 없다고 한다.
java 등의 언어에서 2차 가공을 하는것이 최선이라는 정보를 구글링으로 얻어내었다!
Hash 자료구조인 key의 field에 저장된 데이터의 길이를 알아낼 수 있다.
HSTRLEN key field
6이 나올 줄 알았는데 9가 나왔다
redis 는
UTF-8
인코딩 설정이 되어있어서 한글
1자 당 3Byte
로 해석된다!
EUC-KR
은 한글
1자 당 2Byte
임
Hash 자료구조를 가진 키에 저장된 필드 이름
모두 출력
HKEYS key
Hash 자료구조를 가진 키에 저장된 필드의 값
들 모두 출력
HVALS key