์•ˆ๋…•ํ•˜์„ธ์š”, ์ผ€์ด์น˜์ž…๋‹ˆ๋‹ค.


์ง€๋‚œ ๋ ˆ๋””์Šค ๋ฐ์ดํƒ€ ํƒ€์ž… ํฌ์ŠคํŒ…์„ ๋ณด์…จ๋‹ค๋ฉด ์•„์‹œ๊ฒ ์ง€๋งŒ ๋ ˆ๋””์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์„ฏ ๊ฐ€์ง€์˜ ๋ฐ์ดํƒ€ ํƒ€์ž…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.


์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ ˆ๋””์Šค ๋ฐ์ดํƒ€ ํƒ€์ž… ๋ณ„ ๋ช…๋ น์–ด ๋ชฉ๋ก ๋ฐ ๊ธฐ๋Šฅ ์ œ 1ํŽธ์œผ๋กœ ์ŠคํŠธ๋ง ํƒ€์ž…์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํ•˜๋ คํ•ฉ๋‹ˆ๋‹ค.


Redis Strings

๋ ˆ๋””์Šค ์ŠคํŠธ๋ง ํƒ€์ž…์€ ์ œ์ผ ๊ธฐ๋ณธ์ ์ธ ํƒ€์ž…์ž…๋‹ˆ๋‹ค. Memcached์˜ ์œ ์ผํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ธ ์ŠคํŠธ๋ง์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ ˆ๋””์Šค๋ฅผ ์ƒˆ๋กœ ๋ฐฐ์šฐ๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋„ ์–ด๋ ต์ง€ ์•Š์ฃ . ๋ญ ์ŠคํŠธ๋ง์€ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํƒ€์ž… ์ค‘์— ํ•˜๋‚˜๋‹ˆ๊นŒ์š”.

๋ ˆ๋””์Šค์˜ ํ‚ค๊ฐ€ ๋ฐ”๋กœ ์ŠคํŠธ๋ง์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์„ ์ŠคํŠธ๋ง ํƒ€์ž…์œผ๋กœ ์ €์žฅํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํ•˜๋‚˜์˜ ์ŠคํŠธ๋ง์„ ๋˜๋‹ค๋ฅธ ์ŠคํŠธ๋ง์— ๋งคํ•‘ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ŠคํŠธ๋ง ๋ฐ์ดํƒ€ ํƒ€์ž…์€ ์ •๋ง ๋งŽ์€ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด HTML ์ผ๋ถ€๋‚˜ ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ์บ์‹ฑํ•  ์ˆ˜๋„ ์žˆ์ฃ .

์ŠคํŠธ๋ง ํƒ€์ž…์„ ๋‹ค๋ฃจ๋Š” ์˜ˆ์ œ๋ฅผ ํ•œ๋ฒˆ ๋ณด๋ฉด์„œ ๋” ์•Œ์•„๋ณด๋„๋ก ํ•˜์ฃ . 

๋ ˆ๋””์Šค ํ”„๋กฌํ”„ํŠธ ์ฐฝ์—์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ์ž…๋ ฅํ•ด๋ณด์„ธ์š”.

> set mykey somevalue
OK
> get mykey
"somevalue"

์œ„ ์˜ˆ์ œ๋Š” SET ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ mykey๋ผ๋Š” ํ‚ค์— somevalue๋ผ๋Š” ๊ฐ’์„ ๋งคํ•‘์‹œํ‚ต๋‹ˆ๋‹ค.  ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ SET ๋ช…๋ น์–ด๋Š”  ๋™์ผํ•œ ํ‚ค๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•œ๋‹ค๋ฉด ๊ทธ ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ฎ์–ด์“ด๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ๊ฐ’์ด ์–ด๋–ค ํƒ€์ž…์ด๋ƒ๋Š” ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด ๋ฎ์–ด์“ฐ๋‹ˆ ์ฃผ์˜ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋‹ค์‹œ๋งํ•˜๋ฉด SET ๋ช…๋ น์–ด๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ = ๊ณผ ๊ฐ™์ด ํŠน์ • ํ‚ค์— ํŠน์ • ๊ฐ’์„ ํ• ๋‹นํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์€ ์–ด๋– ํ•œ ์ŠคํŠธ๋ง์ด๋ผ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํƒ€ ์—ญ์‹œ ๊ฐ€๋Šฅํ•˜์ฃ . JPEG ์ด๋ฏธ์ง€์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํƒ€๋„ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ ๋˜ ์ค‘์š”ํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฐ’์ด๋“  ๊ทธ ํฌ๊ธฐ๊ฐ€ 512MB๋ฅผ ๋„˜์„ ์ˆ˜๋Š” ์—†๋‹ค๋Š” ๊ฒƒ์ด์ฃ .

SET ๋ช…๋ น์–ด์— ์˜ต์…˜์„ ์ค„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ์ด๋ฏธ ํ•ด๋‹น ํ‚ค๊ฐ€ ์กด์žฌํ•˜๋ฉด ์‹คํŒจํ•˜๋„๋ก ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ ๋ฐ˜๋Œ€๋กœ ์ด๋ฏธ ํ‚ค๊ฐ€ ์กด์žฌํ•  ๋•Œ์—๋งŒ SETํ•˜๋„๋ก ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ๋ง์ด์ฃ .

> set mykey newval nx
(nil)
> set mykey newval xx
OK

์ŠคํŠธ๋ง์ด ๋ ˆ๋””์Šค์˜ ์ •๋ง ๊ธฐ๋ณธ์ ์ธ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์ด์ง€๋งŒ ์—ฌ๋Ÿฌ ์‹ค์šฉ์ ์ธ ๊ธฐ๋Šฅ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. atomic increment ๊ฐ€ ๊ทธ ํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค. atomic increment๊ฐ€ ๋ญ”์ง€ ์ž˜ ๋ชจ๋ฅด์‹ ๋‹ค๋ฉด atomic์ด ๋ญ˜ ์˜๋ฏธํ•˜๋Š”์ง€ ์ฐพ์•„๋ณด์‹œ๋ฉด ๋ ๊ฒ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ทธ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.

> set counter 100
OK
> incr counter
(integer) 101
> incr counter
(integer) 102
> incrby counter 50
(integer) 152

 INCR ๋ช…๋ น์–ด๋Š” ์ŠคํŠธ๋ง์œผ๋กœ ์ €์žฅ๋œ ๊ฐ’์„ ์ˆซ์žํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค 1์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ ‡๊ฒŒ ์ฆ๊ฐ€๋œ ๊ฐ’์„ ๋‹ค์‹œ ์ŠคํŠธ๋ง ํ˜•ํƒœ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด์™€ ๋น„์Šทํ•˜๊ฒŒ INCRBYDECR ๊ทธ๋ฆฌ๊ณ  DECRBY ์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋“ค์„ ๋ ˆ๋””์Šค๋Š” ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋“ค์€ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์•„์ฃผ ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด๋งŒ ์žˆ์„ ๋ฟ์ด์ฃ .

INCR ๊ฐ€ atomic์ด๋ผ๋Š”๊ฒŒ ๋ฌด์Šจ ์˜๋ฏธ๋ƒ๊ตฌ์š”? ์—ฌ๋Ÿฌ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์ผํ•œ ํ‚ค์— ๋Œ€ํ•ด์„œ INCR๋ช…๋ น์–ด๋ฅผ ์š”์ฒญํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, ์š”์ฒญํ•œ ์‚ฌ์šฉ์ž๋“ค์ด ์ ˆ๋Œ€๋กœ race condition์— ๋น ์งˆ ์ˆ˜ ์—†๋‹ค๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž 1 ์ด 10์ด๋ผ๋Š” ๊ฐ’์„ ์ฝ๊ณ , ์‚ฌ์šฉ์ž 2 ์—ญ์‹œ ๋™์ผํ•œ ํ‚ค์— ๋Œ€ํ•ด์„œ 10์ด๋ผ๋Š” ๊ฐ’์„ ์ฝ์€ ๋’ค ๋‘ ์‚ฌ์šฉ์ž๊ฐ€ 1์”ฉ ๊ฐ’์„ ์ฆ๊ฐ€์‹œ์ผฐ์„ ๋•Œ ์ตœ์ข… ๊ฒฐ๊ณผ๊ฐ€ 11์ด ๋  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด์ฃ . ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ๋ฌด์กฐ๊ฑด ์ ˆ๋Œ€๋กœ 12 ๊ฐ€ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋ ˆ๋””์Šค๋Š” ๋ณด์žฅํ•ด์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ๋งํ•˜๋ฉด ๊ฐ’์„ ์ฝ๊ณ , 1 ์ฆ๊ฐ€ํ•˜๊ณ , ๋‹ค์‹œ ์ €์žฅํ•˜๋Š” ๊ณผ์ •์ด ๋ชจ๋‘ ํ•œ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ–ˆ์„ ๋•Œ ์ด๋ฃจ์–ด์ง€๊ณ  ๊ทธ ์‚ฌ์ด์— ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ผ์–ด๋“ค ์ˆ˜ ์—†๋‹ค๋Š” ๋ง์ด์ฃ .

์ด ์™ธ์—๋„ ์ŠคํŠธ๋ง์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.  GETSET ๋ช…๋ น์–ด๋Š” ํ‚ค์— ์กด์žฌํ•˜๋Š” ๊ฐ’์„ ์ฝ๊ณ  ์ƒˆ๋กœ์šด ๊ฐ’์„ ์„ธํŒ…ํ•œ๋’ค ์ฝ์–ด๋“ค์ธ ๊ธฐ์กด๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ๋ฐฉ๋ฌธ์ž์ˆ˜๋ฅผ ๊ธฐ๋กํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ . ์ผ๋ณ„๋กœ ๋ฐฉ๋ฌธ์ž์ˆ˜๋ฅผ ๊ธฐ๋ก์„ ํ•ด์•ผํ•œ๋‹ค๋ฉด ์ž์ •์ด ๋˜์—ˆ์„ ๋•Œ GETSET ๋ช…๋ น์–ด๋กœ ์˜ค๋Š˜ ๋ฐฉ๋ฌธ์ž์ˆ˜๋ฅผ ์ฝ์–ด์˜ค๊ณ  0์œผ๋กœ ์„ธํŒ…ํ•ด์ฃผ๋ฉด ๋˜๋Š”๊ฑฐ์ฃ .

์—ฌ๋Ÿฌ๊ฐœ์˜ ํ‚ค-๊ฐ’ ํŽ˜์–ด๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์กฐํšŒํ•˜๊ณ  ์‹ถ์„ ๋•Œ์—๋Š” MSET ์™€ MGET ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

> mset a 10 b 20 c 30
OK
> mget a b c
1) "10"
2) "20"
3) "30" 

MSET์€ ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ ํ‚ค-๊ฐ’ ํŽ˜์–ด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ช…๋ น์–ด์ด๊ณ 

 MGET ์€ ๊ฐ’์˜ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Altering and querying the key space ( ํ‚ค ๋ณ€๊ฒฝ, ์กฐํšŒ, ์‚ญ์ œ ํ•˜๊ธฐ )

๋ ˆ๋””์Šค๋Š” ํ‚ค์™€ ๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ‚ค ์ด๋ฆ„ ๋ณ€๊ฒฝ( ์ด๊ฒƒ์€ ์œ„์—์„œ ๋ณด์…จ์ฃ ? ), ํ‚ค ๋ชฉ๋ก ์กฐํšŒ ๋ฐ ์กด์žฌ์—ฌ๋ถ€ ํŒŒ์•…, ๋˜๋Š” ์‚ญ์ œํ•˜๊ธฐ์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋“ค์„ ๋ง์ด์ฃ .

 EXISTS ๋ช…๋ น์–ด๋Š” 1 ๋˜๋Š” 0 ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๊ฐ€ ์กด์žฌํ•˜๊ฑฐ๋‚˜ ์กด์žฌํ•˜์ง€ ์•Š์„๋•Œ ๋ง์ด์ฃ .

๊ทธ๋ฆฌ๊ณ  DEL ๋ช…๋ น์–ด๋Š” ํ•ด๋‹น ํ‚ค์™€ ๊ทธ ํ‚ค์— ํ• ๋‹น๋œ ๊ฐ’์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

> set mykey hello
OK
> exists mykey
(integer) 1
> del mykey
(integer) 1
> exists mykey
(integer) 0

์œ„ ์˜ˆ์ œ๋ฅผ ๋ณด์‹œ๋ฉด ๊ฐ ๋ช…๋ น์–ด๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์‰ฝ๊ฒŒ ์ดํ•ด๊ฐ€ ๋˜์‹ค๊ฒ๋‹ˆ๋‹ค.

์ด ๋ช…๋ น์–ด๋“ค ์™ธ์—๋„ ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ key space ๊ด€๋ จ ๋ช…๋ น์–ด๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ ๋‘ ๋ช…๋ น์–ด์™€ ํ•จ๊ป˜ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ  TYPE ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ํŠน์ • ํ‚ค์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ๊ฐ’์˜ ํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ๋ฅผ ๋ณด์‹œ์ฃ .

> set mykey x
OK
> type mykey
string
> del mykey
(integer) 1
> type mykey
none

์ฒ˜์Œ์— set mykey x ๋กœ ํ‚ค mykey์— ๊ฐ’ x๋ฅผ ๋“ฑ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  type mykey ๋กœ mykey์— ์ €์žฅ๋œ ๊ฐ’ x์˜ ํƒ€์ž…์„ ์กฐํšŒํ•ด ๋ณด๋‹ˆ string์ด ๋‚˜์™”๋„ค์š”. ๊ทธ ๋‹ค์Œ์—” mykey๋ฅผ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ์กฐํšŒ๋ฅผ ํ•ด๋ณด๋‹ˆ none ์ด๋ผ๊ณ  ๋‚˜์™”๋„ค์š”. ํ•ด๋‹น ํ‚ค์— ์ €์žฅ๋œ ๊ฐ’์ด ์—†๋‹ค๋Š” ์–˜๊ธฐ๊ฒ ์ฃ .

Redis ํ‚ค์— TTL (Time To Live)์„ค์ •ํ•˜๊ธฐ 

์ด๊ฑด ๋‹จ์ง€ ์ŠคํŠธ๋ง ํƒ€์ž… ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ํƒ€์ž…์— ์ ์šฉ๋˜๋Š” ๊ฒƒ์ด๊ธด ํ•ฉ๋‹ˆ๋‹ค๋งŒ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์–˜๊ธฐํ•˜๊ธฐ ์ „์— ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ‚ค์— ํƒ€์ž„์•„์›ƒ ์‹œ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์ •๋œ ํƒ€์ž„์•„์›ƒ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ž๋™์œผ๋กœ ํ‚ค๋Š” ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ญ์ œ๋˜๋Š”๊ฒƒ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ DEL ๋ช…๋ น์–ด๋กœ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ๊ณผ ์™„์ „ํžˆ ๋™์ผํ•˜๊ฒŒ ์‚ญ์ œ๊ฐ€ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 Redis expires ์™€ ๊ด€๋ จํ•˜์—ฌ ์•„๋ž˜ ๋‚ด์šฉ์„ ์ˆ™์ง€ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ๋™์ž‘ํ•œ๋‹ค.
  • ์ดˆ ๋‹จ์œ„ ๋˜๋Š” ๋ฐ€๋ฆฌ ์ดˆ ๋‹จ์œ„๋กœ ๋งŒ๋ฃŒ๋˜๊ธฐ ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋งŒ๋ฃŒ์ผ์‹œ์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋Š” ๋””์Šคํฌ์— ๋ณต์ œ๋˜์–ด ์ €์žฅ๋˜๊ณ  ๋ ˆ๋””์Šค ์„œ๋ฒ„๊ฐ€ ๋ฉˆ์ถฐ๋„ ์žฌ๊ธฐ๋™ ๋ ๋•Œ ํ˜„์žฌ ์ผ์‹œ์™€ ๋น„๊ตํ•˜์—ฌ ์‚ญ์ œํ•œ๋‹ค.

๋งŒ๋ฃŒ์ผ์‹œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„์ฃผ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ๋ฅผ ํ•œ๋ฒˆ ๋ณด์‹œ์ฃ .

> set key some-value
OK
> expire key 5
(integer) 1
> get key (์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์ž๋งˆ์ž ๋ฐ”๋กœ ์‹คํ–‰)
"some-value"
> get key (5์ดˆ ๋’ค์— ์‹คํ–‰)
(nil)

์œ„ ์˜ˆ์ œ๋Š” ์–ด๋–ค ๊ฐ’์„ ์ €์žฅํ•œ ๋’ค 5์ดˆ๋กœ ๋งŒ๋ฃŒ์‹œ๊ฐ„์„ ์ง€์ •ํ•ด์ฃผ๊ณ  ๋‘ ๋ฒˆ์˜ GET ์„ ํ˜ธ์ถœํ•  ๋•Œ ๋งŒ๋ฃŒ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๊ฐ’์ด ์กฐํšŒ๊ฐ€ ๋˜๋Š”์ง€ ์•ˆ๋˜๋Š”์ง€๋ฅผ ํ™•์ธํ•ด๋ณธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 5์ดˆ ๋’ค์— ๋งŒ๋ฃŒ๋˜๋ผ๊ณ  ์ง€์ •ํ•ด์ฃผ์—ˆ์œผ๋‹ˆ 5์ดˆ ๋’ค์—๋Š” nil์ด๋ผ๊ณ  ๋œจ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 

์—ฌ๊ธฐ์„œ๋Š” EXPIRE ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ๋งŒ๋ฃŒ์ผ์‹œ๋ฅผ ์ง€์ •ํ•ด์ฃผ์—ˆ๋Š”๋ฐ ๋งŒ์•ฝ์— ์ด ๋งŒ๋ฃŒ์ผ์‹œ๋ฅผ ์—†์• ๊ธฐ ์œ„ํ•ด์„œ๋Š” PERSIST ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  EXPIRE๋ช…๋ น๊ณผ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ SET ๋ช…๋ น์–ด์˜ ์˜ต์…˜์„ ์ด์šฉํ•ด์„œ ์ ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

> set key 100 ex 10
OK
> ttl key
(integer) 9

์œ„ ์˜ˆ์ œ๋Š” ํ‚ค key์— ๊ฐ’ 100์„ ์ €์žฅํ•˜๋Š”๋ฐ 10์ดˆ ํ›„์— ๋งŒ๋ฃŒ๋˜์–ด ํŒŒ๊ธฐํ•˜๋ผ๋Š” ์˜ต์…˜์„ ๋ง๋ถ™์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ  TTL ๋ช…๋ น์–ด๋กœ ํ‚ค key์˜ ๋งŒ๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€์˜ ์‹œ๊ฐ„(์ดˆ)์„ ์กฐํšŒ๋ฅผ ํ•ด๋ณด๋‹ˆ 9๊ฐ€ ๋‚˜์™”๋„ค์š”. (์ฐธ๊ณ ๋กœ TTL์€ Time To Live ์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค.)

์ดˆ ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •์„ ํ•˜๋ ค๋ฉด, PEXPIRE ์™€ PTTL ๋ช…๋ น์–ด๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋˜๋Š” PEXPIRE๋Œ€์‹  SET ๋ช…๋ น์–ด์˜ ์˜ต์…˜์„ ์ด์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.



์œ„ ๋‚ด์šฉ์€ ๋ ˆ๋””์Šค ๊ณต์‹ ๋ฌธ์„œ์— ๋‚˜์™€์žˆ๋Š” ๋‚ด์šฉ์„ ์Šคํ„ฐ๋”” ํ•  ๊ฒธ ๊ฐœ์ธ์ ์œผ๋กœ ๋ฒˆ์—ญํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.