ํ™˜๊ฒฝ

[Redis ๋ ˆ๋””์Šค] Redis ์„ค์น˜ ๋ฐ ๊ธฐ๋ณธ ๋ช…๋ น์–ด

hnev 2022. 7. 5. 14:35

๐Ÿ“Œ Redis๋ž€

NoSQL์˜ ์ข…๋ฅ˜ ์ค‘ ํ•˜๋‚˜๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ Key-Value Storage ํ˜• ๊ตฌ์กฐ์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค. ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŠน์ง•์ด ์žˆ์œผ๋ฉฐ, ๋ฌธ์„œํ˜• NoSQL์ธ MongoDB ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ๊ฐ€๋ณ๊ฒŒ ๋™์ž‘ํ•˜๋ฉฐ I/O๊ฐ€ ์ˆ˜์‹œ๋กœ ๋ฐœ์ƒํ•˜๋Š” (์บ์‹œ, ์ธ์ฆ ํ† ํฐ, ์„ธ์…˜ ๊ด€๋ฆฌ ๋“ฑ๋“ฑ) ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜์ด๋ฏ€๋กœ ํ•˜๋‚˜์˜ ๋ช…๋ น์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋ฉด ์ด๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค. 

 

NoSQL์˜ ์ข…๋ฅ˜

  • ํ‚ค-๋ฐธ๋ฅ˜ ์Šคํ† ๋ฆฌ์ง€ํ˜•: Redis, memcached, Coherence
  • ์—ด ์ง€ํ–ฅ ์™€์ด๋“œ ์ปฌ๋Ÿผ ์Šคํ† ์–ด: Cassandra, HBASE, Cloud Database
  • ๋ฌธ์„œํ˜•: MongoDB, Couchbase, MarkLogic, DynamicDB MS-DocumentDB

 

Redis ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜์—ฌ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.

 

๋‹ค์šด๋กœ๋“œํ•œ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œ์ผœ ์ง„ํ–‰(Next) ํ•œ๋‹ค.

 

 

์„ค์น˜ํ•  ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•œ๋‹ค.

 

 

ํฌํŠธ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ๊ธฐ๋ณธ ํฌํŠธ: 6379

 

 

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋ฉฐ ์ž‘์—… ๊ด€๋ฆฌ์ž(Window ํ‚ค + ์ž‘์—…) ์„œ๋น„์Šค ํƒญ์—์„œ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์„ค์น˜๊ฒฝ๋กœ ํ™•์ธ

์„ค์น˜๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜์—ฌ redis-cli.exe์„ ์‹คํ–‰์‹œํ‚จ๋‹ค.

 

 

redis-cli.exe

ping ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ™•์ธ(PONG)์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

set ๋ช…๋ น์–ด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ key-value ํ˜•ํƒœ๋กœ ์ž…๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ get์œผ๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ช…๋ น์–ด(Command)

์ €์žฅ
๋ช…๋ น์–ด  ์„ค๋ช…
set key value key, value ์ €์žฅ
mset key value [key value...] ์—ฌ๋Ÿฌ ๊ฐœ์˜ key, value ๋ฅผ ํ•œ๋ฒˆ์— ์ €์žฅ
setex key seconds value key, seconds, value ์ €์žฅ (์„ค์ •ํ•œ ์‹œ๊ฐ„ *seconds ๋’ค์— ์†Œ๋ฉธ)

 

 ์กฐํšŒ
๋ช…๋ น์–ด  ์„ค๋ช…
keys * ํ˜„์žฌ ์ €์žฅ๋œ ํ‚ค๊ฐ’๋“ค์„ ๋ชจ๋‘ ํ™•์ธ (๋ถ€ํ•˜๊ฐ€ ์‹ฌํ•œ ๋ช…๋ น์–ด๋ผ ์šด์˜์ค‘์ธ ์„œ๋น„์Šค์—์„  ์ ˆ๋Œ€ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ฒƒ)
get key ์ง€์ •ํ•œ key ์— ํ•ด๋‹นํ•˜๋Š” value ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค
mget key [key...] ์—ฌ๋Ÿฌ ๊ฐœ์˜ key ์— ํ•ด๋‹นํ•˜๋Š” value ๋ฅผ ํ•œ๋ฒˆ์— ๊ฐ€์ ธ์˜จ๋‹ค
ttl key key ์˜ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ์ดˆ ๋‹จ์œ„๋กœ ๋ณด์—ฌ์ค€๋‹ค (-1 ์€ ๋งŒ๋ฃŒ์‹œ๊ฐ„ ์—†์Œ, -2 ๋Š” ๋ฐ์ดํ„ฐ ์—†์Œ)
pttl key key ์˜ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ๋ณด์—ฌ์ค€๋‹ค
type key ํ•ด๋‹น key ์˜ value ํƒ€์ž… ํ™•์ธ

 

์‚ญ์ œ
๋ช…๋ น์–ด  ์„ค๋ช…
del key [key...] ํ•ด๋‹น key ๋“ค์„ ์‚ญ์ œ

 

์ˆ˜์ •
๋ช…๋ น์–ด  ์„ค๋ช…
rename key newKey key ์ด๋ฆ„ ๋ณ€๊ฒฝ
expire key seconds ํ•ด๋‹น ํ‚ค ๊ฐ’์˜ ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ์„ค์ •

 

๊ธฐํƒ€
๋ช…๋ น์–ด  ์„ค๋ช…
randomkey ๋žœ๋คํ•œ key ๋ฐ˜ํ™˜
ping ์—ฐ๊ฒฐ ์—ฌ๋ถ€ ํ™•์ธ ("ping" ๋งŒ ์ž…๋ ฅํ•˜๋ฉด "PONG" ์ด๋ผ๋Š” ์‘๋‹ต์ด ์˜ด)
dbsize ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ DB ์˜ key ์˜ ๊ฐฏ์ˆ˜ ๋ฆฌํ„ด
flushall ๋ ˆ๋””์Šค ์„œ๋ฒ„์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ญ์ œ
flushdb ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ DB ์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ญ์ œ