Redis JSON

이정훈·2024년 6월 27일

Caching

목록 보기
8/10

JSON

JSON 값 저장하고 가져오기

JSON 값을 저장하기 위해서는 JSON.SET을 JSON 값을 가져오기 위해서는 JSON.GET을 사용하면 됩니다.
구체적으로는
JSON.SET [키 값] $ [필드 값]
JSON.GET [키 값] $
형태입니다.
여기서 $는 JSON 객체의 루트(Root)를 의미하는 말입니다.

> JSON.SET bike $ '"Hyperion"'
OK
> JSON.GET bike $
"[\"Hyperion\"]"
> JSON.TYPE bike $
1) "string"

참고로 JSON 값의 타입을 확인하기 위해 JSON.TYPE 명령어를 사용할 수 있습니다.

JSON에 String으로 저장된 값 길이 확인하고 String추가하기

JSON 값으로 저장된 String의 길이를 확인할 수 있습니다.
JSON.STRLEN 명령어로 가능합니다.
구체적으로는
JSON.STRLEN [키 값] $
형태입니다.

> JSON.STRLEN bike $
1) (integer) 8

기존 JSON에 있는 String 값에 String을 추가할 수 있습니다.
JSON.STRAPPEND 명령어로 가능합니다.
구체적으로는
JSON.STRAPPEND [키 값] $ [붙일 STRING 값]
형태입니다.

> JSON.STRAPPEND bike $ '" (Enduro bikes)"'
1) (integer) 23
> JSON.GET bike $
"[\"Hyperion (Enduro bikes)\"]"

JSON에 숫자 값 저장하고 덧셈 및 곱해보기

JSON.NUMINCRBY 명령어를 통해 JSON에 저장된 숫자 값을 증가시킬 수 있습니다.
또한 JSON.NUMMULTBY 명령어를 통해 JSON에 저장된 숫자 값을 곱할 수 있습니다.
구체적으로는
JSON.NUMINCRBY [키 값] $ [증가시킬 수]
JSON.NUMMULTBY [키 값] $ [곱할 수]
형태입니다.

> JSON.SET crashes $ 0
OK
> JSON.NUMINCRBY crashes $ 1
"[1]"
> JSON.NUMINCRBY crashes $ 1.5
"[2.5]"
> JSON.NUMINCRBY crashes $ -0.75
"[1.75]"
> JSON.NUMMULTBY crashes $ 24
"[42]"

JSON에 배열 저장하기 및 배열 내 특정 인덱스 값 삭제하기

JSON에 배열을 저장하기 위해서는 []을 사용하면 됩니다.
그리고 배열 내 특정 값을 삭제하기 위해서는 JSON.DEL명령어를 사용하면 됩니다.
구체적으로는
JSON.DEL [키 값] $ [인덱스]
형태입니다.
JSON.DEL은 배열 값 뿐만 아니라 다른 값들도 삭제 가능합니다.

> JSON.SET newbike $ '["Deimos", {"crashes": 0}, null]'
OK
> JSON.GET newbike $
"[[\"Deimos\",{\"crashes\":0},null]]"
> JSON.GET newbike $[1].crashes
"[0]"
> JSON.DEL newbike $[-1]
(integer) 1
> JSON.GET newbike $
"[[\"Deimos\",{\"crashes\":0}]]"

JSON 배열에 값 추가하고 가져오고 배열 자르기

배열에 값을 추가하기 위해서는 JSON.ARRAPPEND와 JSON.ARRINSERT가 사용가능합니다.
구체적으로는
JSON.ARRAPPEND [키 값] $ [배열에 추가할 값]
JSON.ARRINSERT [키 값] $ [추가할 인덱스 위치][배열에 추가할 값]
형태입니다.

배열끝의 값을 가져오고 삭제하고 싶다면 JSON.ARRPOP을 사용하면 됩니다.
구체적으로는
JSON.ARRPOP [키 값] $
형태입니다.

배열을 자르고 싶다면 JSON.ARRTRIM을 사용하면 됩니다.
구체적으로는
JSON.ARRTRIM [키 값] $ [시작 인덱스][끝 인덱스]
형태입니다.

> JSON.SET riders $ []
OK
> JSON.ARRAPPEND riders $ '"Norem"'
1) (integer) 1
> JSON.GET riders $
"[[\"Norem\"]]"
> JSON.ARRINSERT riders $ 1 '"Prickett"' '"Royce"' '"Castilla"'
1) (integer) 4
> JSON.GET riders $
"[[\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]]"
> JSON.ARRTRIM riders $ 1 1
1) (integer) 1
> JSON.GET riders $
"[[\"Prickett\"]]"
> JSON.ARRPOP riders $
1) "\"Prickett\""
> JSON.ARRPOP riders $
1) (nil)

JSON 자체의 길이와 키 값 가져오기

JSON 자체의 길이를 알아내기 위해 JSON.OBJLEN 명령어가 사용가능합니다.
구체적으로는
JSON.OBJLEN [키 값] $
형태입니다.

또한 JSON의 모든 키 값을 가져올 수 있는데 JSON.OBJKEYS 명령어로 가능합니다.
구체적으로는
JSON.OBJKEYS [키 값] $
형태입니다.

> JSON.SET bike:1 $ '{"model": "Deimos", "brand": "Ergonom", "price": 4972}'
OK
> JSON.OBJLEN bike:1 $
1) (integer) 3
> JSON.OBJKEYS bike:1 $
1) 1) "model"
   2) "brand"
   3) "price"
profile
기록으로 흔적을 남깁니다.

0개의 댓글