๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ/Redis

Redis ์‹คํ–‰ํ•ด๋ณด๊ธฐ

by Jaeguk 2024. 5. 28.

Redis๋ฅผ ์ง์ ‘ ์„ค์น˜ํ•˜๊ณ , ์‹คํ–‰์„ ํ•ด๋ณด์ž

git clone https://github.com/valkey-io/valkey
make
  • Valkey(Redis)๋Š” Linux ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰์„ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Mac ๋˜๋Š” WSL ํ™˜๊ฒฝ์—์„œ ๋นŒ๋“œํ•ด์•ผ ํ•œ๋‹ค
  • ๋‚˜๋Š” Mac์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์„ธํŒ…์€ ํ•˜์ง€ ์•Š์•˜๋‹ค

 

Redis์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ


Redis ํ”„๋กœ์ ํŠธ๋Š” ์–ด๋–ค ๋””๋ ‰ํ† ๋ฆฌ๋“ค์„ ๊ฐ–๊ณ  ์žˆ์„๊นŒ

  • deps
    • ํ•„์š”ํ•œ dependency๋“ค์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ
  • utils
  • tests
    • ํ…Œ์ŠคํŠธ์‹œ์— ์‚ฌ์šฉ๋œ๋‹ค
  • src

 

๋งŒ์•ฝ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ƒ์„ฑํ•ด์„œ Contribution์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด
make test ๋ช…๋ น์„ ์‹คํ–‰ํ•œ ํ›„์— ํ†ต๊ณผ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค

 

Redis ์‹คํ–‰ํ•˜๊ธฐ


Redis ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ด๋ณด์ž

cd src
./valkey-server
  • ์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ๋ ˆ๋””์Šค ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค

 

  • ์ด๋Ÿฐ ์ฐฝ์ด ๋œฌ๋‹ค๋ฉด ์‹คํ–‰ ์„ฑ๊ณต!
  • Redis๋Š” 6379๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

 

Redis CLI ์‚ฌ์šฉํ•ด๋ณด๊ธฐ


Redis CLI๋ฅผ ํ†ตํ•ด์„œ ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž

./valkey-cli
  • ์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ๋ ˆ๋””์Šค CLI๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค

 

  • ping์ด๋ผ๊ณ  ๋ช…๋ น์„ ํ•˜๋ฉด, PONG ์ด๋ผ๊ณ  ์‘๋‹ต์„ ์˜ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค
  • set key value๋ฅผ ํ†ตํ•ด์„œ key-value ํ˜•ํƒœ๋กœ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค
  • get key๋ฅผ ํ†ตํ•ด์„œ value ๊ฐ’์„ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋‹ค
  • ๋ช…๋ น์–ด๋ฅผ ๋”ฑ ๋ดค์„ ๋•Œ ์ฝ๊ธฐ๊ฐ€ ์‰ฝ๋‹ค
    • Human Readable ํ”„๋กœํ† ์ฝœ(Text ํ”„๋กœํ† ์ฝœ)์„ ์‚ฌ์šฉ ํ•œ๋‹ค
    • Binary ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋น ๋ฅธ๋ฐ, Redis๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค
    • Human Readableํ•œ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜ ํŒŒ์‹ฑ์„ ํ•ด์„œ ์ฝ์–ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค
    • ์ •๋ง ์„ฑ๋Šฅ์„ ๋” ๋Œ์–ด์˜ฌ๋ฆฌ๋ ค๋ฉด ๋ฐ”์ด๋„ˆ๋ฆฌ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๋” ์ข‹์„ ๊ฒƒ

 

RESP


REdis Serialization Protocol

  • Redis์˜ Request/Response ํฌ๋งท
  • Redis๊ฐ€ ์ฃผ๊ณ  ๋ฐ›๋Š” ํŒจํ‚ท์˜ ํฌ๋งท
  • ํ˜„์žฌ RESP v2, v3 ๋‘๊ฐ€์ง€ ๋ฒ„์ „์ด ์žˆ๋‹ค
  • ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” RESP v2๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๊ณ , hello 3๋ผ๋Š” ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ณ„์ ์œผ๋กœ RESP v3๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค

 

RESP v2


RESP v2๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋ณด์ž

  • ์‘๋‹ต์€ ์‹œ์ž‘ ๊ตฌ๋ถ„์ž๋กœ ์‹œ์ž‘ํ•˜๊ณ , ๊ฐ ๋ผ์ธ์€ \r\n์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค

 

telnet localhost 6379 #Redis ํฌํŠธ๋ฒˆํ˜ธ
  • ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์€ telnet์„ ์‚ฌ์šฉํ•œ๋‹ค
  • ์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ telnet์— ์ ‘์†ํ•œ๋‹ค

 

  • hset hkey redis valkey๋Š” ์šฐ๋ฆฌ๊ฐ€ ์•ž์—์„œ CLI์—์„œ ์ž…๋ ฅํ–ˆ๋˜ set redis valkey์™€ ๊ฐ™์€ ๋ช…๋ น์ด๋‹ค

 

  • ์ด๊ฑธ RESP ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์ž…๋ ฅํ•  ์ˆ˜๋„ ์žˆ๋‹ค
    • *4๋Š” 4๊ฐœ์˜ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ฒ ๋‹ค๋Š” ๋œป
    • $4๋Š” 4์ž๋ฆฌ์˜ ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ฒ ๋‹ค๋Š” ๋œป

 

 

 

 

728x90

'๊ฐœ๋ฐœ > Redis' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Cache์˜ ์‚ฌ์šฉ ์˜ˆ  (0) 2024.04.30
๋ ˆ๋””์Šค ?  (4) 2024.04.13