πŸ’Έ [Redis] λ ˆλ””μŠ€ 데이터 νƒ€μž…: Hashes

μ΄μ„œΒ·2023λ…„ 10μ›” 5일
0

μ•ˆλ…•ν•˜μ„Έμš” μ΄μ„œμ—μš”, 이번 ν¬μŠ€νŠΈμ—μ„œλŠ” λ ˆλ””μŠ€ νƒ€μž…μΈ Hashes에 λŒ€ν•΄ ν¬μŠ€νŒ…ν•˜λ € ν•΄μš”.

κ°œμš”

Redis의 Hashes 데이터 νƒ€μž…μ€ ν•„λ“œ-κ°’ μŒμ„ μ €μž₯ν•˜λŠ” ν•΄μ‹œ 맡 ꡬ쑰λ₯Ό μ œκ³΅ν•΄μš”. μ΄λŸ¬ν•œ ν•„λ“œ-κ°’ μŒμ€ λ¬Έμžμ—΄ ν‚€λ₯Ό 기반으둜 μ €μž₯λΌμš”. HashesλŠ” 데이터λ₯Ό κ΅¬μ‘°ν™”ν•˜κ³ , ν•„λ“œ μˆ˜μ€€μ—μ„œ 읽고 μ“°λŠ” μž‘μ—…μ„ 효과적으둜 μ²˜λ¦¬ν•  λ•Œ μœ μš©ν•˜λ©°, 특히 κ°œλ³„ ν•„λ“œλ₯Ό μ—…λ°μ΄νŠΈν•˜κ±°λ‚˜ μ‘°νšŒν•  λ•Œ λΉ λ₯Έ μ„±λŠ₯을 μ œκ³΅ν•΄μš”. Redis HashesλŠ” μ‚¬μš©μž ν”„λ‘œν•„, μ„€μ •, μΉ΄μš΄ν„°, μ£Όμ†Œ 정보와 같이 λ‹€μ–‘ν•œ 데이터 ꡬ쑰에 μ μš©ν•  수 μžˆμ–΄μš”.

Hashes 데이터 νƒ€μž…μ΄ ν•„λ“œ μˆ˜μ€€μ—μ„œ 읽고 μ“°λŠ” μž‘μ—…μ΄ 효과적인 μ΄μœ λŠ” 첫 번째둜 λ³΅μž‘ν•œ 데이터 ꡬ쑰 ν‘œν˜„μ΄ κ°€λŠ₯ν•˜μ—¬ 데이터λ₯Ό 쑰직적으둜 μ €μž₯ν•˜κ³  관리할 수 있으며, 두 λ²ˆμ§Έλ‘œλŠ” ν•„λ“œ λ‹¨μœ„λ‘œ 값을 μˆ˜μ •ν•  수 μžˆμ–΄, 전체 데이터λ₯Ό μ—…λ°μ΄νŠΈν•˜μ§€ μ•Šκ³  ν•„μš”ν•œ νŠΉμ • ν•„λ“œλ§Œ μˆ˜μ •ν•  수 있기 λ•Œλ¬Έμ΄μ—μš”.

λͺ…λ Ήμ–΄

  1. HSET key field value [field value …]: νŠΉμ • ν•΄μ‹œ 맡(key)에 ν•˜λ‚˜ μ΄μƒμ˜ ν•„λ“œ(field)와 κ°’(value)을 μ„€μ •ν•΄μš”.
> HSET h1 f1 v1
(integer) 1

> HSET h1 f2 v2 f3 v3
(integer) 2
  1. HGET key field: νŠΉμ • ν•΄μ‹œ λ§΅μ—μ„œ μ§€μ •ν•œ ν•„λ“œμ˜ 값을 λ°˜ν™˜ν•΄μš”.
> HGET h1 f1
"v1"
  1. HDEL key field [field …]: νŠΉμ • ν•΄μ‹œ λ§΅μ—μ„œ ν•˜λ‚˜ μ΄μƒμ˜ ν•„λ“œλ₯Ό μ œκ±°ν•΄μš”.
> HDEL h1 f1
(integer) 1

> HDEL h1 f2 f3
(integer) 2

> HDEL h1 f1
(integer) 0
  1. HEXISTS key field: νŠΉμ • ν•΄μ‹œ λ§΅μ—μ„œ νŠΉμ • ν•„λ“œκ°€ μ‘΄μž¬ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό 확인할 수 μžˆμ–΄μš”.
> HSET h1 f1 v1 f2 v2 f3 v3
(integer) 3

> HEXISTS h1 f1
(integer) 1

> HEXISTS h1 f4
(integer) 0
  1. HGETALL key: νŠΉμ • ν•΄μ‹œ 맡의 λͺ¨λ“  ν•„λ“œμ™€ κ°’μ˜ μŒμ„ λ°˜ν™˜ν•΄μš”.
> HGETALL h1
1) "f1"
2) "v1"
3) "f2"
4) "v2"
5) "f3"
6) "v3"
  1. HKEYS key: νŠΉμ • ν•΄μ‹œ 맡의 λͺ¨λ“  ν•„λ“œλ₯Ό λ°˜ν™˜ν•΄μš”.
> HKEYS h1
1) "f1"
2) "f2"
3) "f3"
  1. HVALS key: νŠΉμ • ν•΄μ‹œ 맡의 λͺ¨λ“  값을 λ°˜ν™˜ν•΄μš”.
> HVALS h1
1) "v1"
2) "v2"
3) "v3"
  1. HLEN key: νŠΉμ • ν•΄μ‹œ 맡의 ν•„λ“œ 수λ₯Ό λ°˜ν™˜ν•΄μš”.
> HLEN h1
(integer) 3
  1. HINCRBY key field increment
> HINCRBY h1 f1 1
(error) ERR hash value is not an integer

> HSET h1 f4 1
(integer) 1

> HINCRBY h1 f4 10
(integer) 11

πŸ’‘Β HINCRBYλŠ” integer νƒ€μž…μ—λ§Œ μ μš©ν•  수 μžˆμ–΄μš”.

  1. HMSET key field value [field value…]: νŠΉμ • ν•΄μ‹œλ§΅μ— μ—¬λŸ¬ 개의 ν•„λ“œμ™€ 값을 ν•œλ²ˆμ— μ„€μ •ν•΄μš”.
> HMSET hm1 f1 v1 f2 v2 f3 v3
OK
  1. HMGET key field [field …]: νŠΉμ • ν•΄μ‹œ λ§΅μ—μ„œ μ—¬λŸ¬ 개의 ν•„λ“œμ˜ 값을 λ°˜ν™˜ν•΄μš”.
> HMGET h1 f1 f2 f3
1) "v1"
2) "v2"
3) "v3"
  1. HSETNX key field value: νŠΉμ • ν•΄μ‹œ 맡에 ν•„λ“œκ°€ μ‘΄μž¬ν•˜μ§€ μ•Šμ„ λ•Œλ§Œ 값을 μ„€μ •ν•΄μš”.
> HSETNX h1 f1 vv1
(integer) 0

> HSETNX h1 f4 v1
(integer) 1

마무리

이번 ν¬μŠ€νŠΈμ—μ„œλŠ” Redis Hashes 데이터 νƒ€μž…μ— λŒ€ν•΄μ„œ 닀루어 λ³΄μ•˜μ–΄μš”. Hashes 데이터 νƒ€μž…μ„ μ‚¬μš©ν•˜λ©΄ κ΅¬μ‘°ν™”λœ 데이터 νƒ€μž…μ„ 쉽고 λΉ λ₯΄κ²Œ μ‘°μž‘ν•  수 μžˆμœΌλ‹ˆ 잘 μ΅ν˜€λ‘μ–΄ μ—¬λŸ¬ λΆ„μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ μš©ν•΄λ³΄μ‹œκΈΈ λ°”λΌμš” πŸ˜†!

profile
πŸŽοΈπŸ’¨ Beep Beep

0개의 λŒ“κΈ€