Redis concept

์žญ์žญ์ดยท2021๋…„ 6์›” 29์ผ
1

redis

๋ชฉ๋ก ๋ณด๊ธฐ
1/6
post-thumbnail

Redis concept

๐ŸŽ ๋ชฉ์ฐจ

๊ฐœ์š”

Redis(Remote Dictionary Server)๋Š” key-value๊ตฌ์กฐ์˜ NoSQL DB์ด๋‹ค.
๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ DBMS๋กœ key-value DBMS ์ค‘ ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋‹ค.

Redis์˜ ๋ชจ๋“œ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

  • Stand alone
  • Sentinel
  • Cluster

์ฃผ์š” ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•œ๋‹ค.
    • Key-value, Hash, Set, List, SortedSet
  • Expireation
    • Key ๋ณ„๋กœ TTL(Time-To-Live)์„ ์„ค์ •ํ•ด๋‘๋ฉด redis๊ฐ€ ์•Œ์•„์„œ ํ•ด๋‹น ์‹œ์ ์ด ์ง€๋‚  ๋•Œ key๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
  • Pipelining
    • ์—ฌ๋Ÿฌ command๋“ค์„ ๋ชจ์•„์„œ ๋ณด๋‚ธ ํ›„ ํ•œ๋ฒˆ์— ๋ชจ์•„์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
  • Pub/Sub
    • ํ•˜๋‚˜์˜ client๊ฐ€ ๊ฐ™์€ ์ฑ„๋„์— ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ client๋“ค์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

Stand alone

ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ์„ ๊ฐ€๋™ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ HA(High availibilty) ์ฆ‰, ๊ณ ๊ฐ€์šฉ์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.
ํ…Œ์ŠคํŠธ ์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์‹ค ์šด์˜ํ™˜๊ฒฝ์—๋Š” ์ง€์–‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

Sentinel

  • Redis replication๊ณผ ๋ณ„๋„์˜ sentinel instance๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • Sentinel์€ redis master๊ฐ€ ์ž‘๋™ ์•ˆ๋˜๋ฉด slave ์ค‘ ํ•˜๋‚˜๋ฅผ ๋งˆ์Šคํ„ฐ๋กœ ์ž๋™ ์Šน๊ฒฉํ•œ๋‹ค.
  • Client๋Š” redis instance์™€ ํ•ญ์ƒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€๋งŒ ์—ฐ๊ฒฐ ํ•  redis instance๋ฅผ ์ฐพ๊ธฐ์œ„ํ•ด์„œ๋Š” redis sentinel์—๊ฒŒ ์š”์ฒญํ•ด์•ผํ•œ๋‹ค.
  • Sentinel instance๋Š” ์ตœ์†Œ 3๊ฐœ ์ด์ƒ์˜ ํ™€์ˆ˜๊ฐœ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.(zookeeper ์šด์˜๋ฐฉ์‹๊ณผ ๋™์ผ)
  • ๋ฐ์ดํ„ฐ ์œ ์‹ค์˜ ๊ฒฝ์šฐ
    • master: 1, slave: 2์˜ ์ƒํ™ฉ
    • network ์žฅ์• ๋กœ master๊ฐ€ slave๋“ค๊ณผ ๋ถ„๋ฆฌ๋˜์–ด์ง.
    • slave ์ค‘ ํ•˜๋‚˜๊ฐ€ master๋กœ ์Šน๊ฒฉ.
    • ๋„คํŠธ์›Œํฌ ์žฅ์•  ๋ณต๊ตฌ ์‹œ, master๊ฐ€ 2๊ฐœ๊ฐ€ ๋˜๊ณ , ์ด ๋‘˜์€ ๋™๊ธฐํ™”๊ฐ€ ๋˜์ง€ ์•Š์Œ.
    • ์žฅ์•  ๊ฐ„ ๋ชจ๋“  write์ž‘์—… ์œ ์‹ค

Cluster

  • HA์™€ sharding์„ ์ง€์›ํ•œ๋‹ค.
  • Sharding์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • 2๊ฐœ์˜ ํฌํŠธ๋ฅด ์‚ฌ์šฉํ•œ๋‹ค.(Client ์šฉ, ๋…ธ๋“œ ๊ฐ„ ํ†ต์‹  ์šฉ)
  • ์•ˆ์ •์  ์šด์˜์„ ์œ„ํ•ด์„œ๋Š” ์ตœ์†Œ 3๊ฐœ์˜ Master๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • Fail over ๋ฐœ์ƒ ์‹œ slave ์Šน๊ฒฉ์ด ์ฆ‰๊ฐ์ ์œผ๋กœ ์ผ์–ด๋‚˜์ง€ ์•Š์•„ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ ๋ชปํ• ์ˆ˜๋„ ์žˆ๋‹ค.
  • Client๋Š” cluster ๋‚ด ์•„๋ฌด ๋…ธ๋“œ์—๊ฒŒ๋‚˜ ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ ค๋„ ๋œ๋‹ค.
    • ํ•ด๋‹น ๋…ธ๋“œ๊ฐ€ ํ•ด๋‹น ์ฟผ๋ฆฌ์˜ ํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๋ฐ”๋กœ ๋ฆฌํ„ดํ•œ๋‹ค.
    • ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•ด๋‹น ํ‚ค๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ๋…ธ๋“œ์˜ ์ •๋ณด๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
    • Client๋Š” ์ „๋‹ฌ๋ฐ›์€ ๋…ธ๋“œ์˜ ์ •๋ณด๋กœ ๋‹ค์‹œ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ธ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€