Redis keys

Redis ์—์„œ ์‚ฌ์šฉํ•˜๋Š” key๋Š” binary safeํ•ฉ๋‹ˆ๋‹ค. 

๋ฐ”์ด๋„ˆ๋ฆฌ ์„ธ์ดํ”„ ํ•˜๋‹ค๋Š” ๋ง์€ ํ‚ค ์ด๋ฆ„์œผ๋กœ ์–ด๋– ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์‹œํ€€์Šค๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค๋Š” ๋ง์ž…๋‹ˆ๋‹ค. 

์˜ˆ๋ฅผ๋“ค์–ด JPEGํŒŒ์ผ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค๋กœ "foo"๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋นˆ ์ŠคํŠธ๋ง๋„ ์œ ํšจํ•œ ํ‚ค๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.


ํ‚ค์™€ ๊ด€๋ จ๋œ ๋˜ ๋‹ค๋ฅธ ๊ทœ์น™์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ๋„ˆ๋ฌด ๊ธด ์ด๋ฆ„์„ ๊ฐ€์ง„ ํ‚ค๋Š” ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด 1024 ๋ฐ”์ดํŠธ ์งœ๋ฆฌ ํ‚ค๋Š” ๋งค์šฐ ์•ˆ์ข‹์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒ๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋„ ๋งŽ์ด ์žก์•„๋จน์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ‚ค๋ฅผ ์ฐพ๋Š”๋ฐ๋„ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ ์ธก๋ฉด์ด๋‚˜ bandwidth ์ธก๋ฉด์—์„œ ๋ดค์„ ๋•Œ ๊ธด ํ‚ค๊ฐ’์ด ํ•ด๋‹น ํ‚ค์™€ ๊ด€๋ จ๋œ ๊ฐ’์ด๋‚˜ ์„œ๋น„์Šค์™€ ๊ด€๋ จ๋œ ์ข‹์€ ์ด๋ฆ„์ด๋ผ ํ• ์ง€๋ผ๋„ SHA1 ๋“ฑ์˜ ํ•ด์‹œ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด์„œ ๊ธธ์ด๋ฅผ ์ค„์—ฌ์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.
  • ๋„ˆ๋ฌด ์งง์€ ํ‚ค ์—ญ์‹œ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. "user:1000:followers"๋ผ๋Š” ํ‚ค ๋Œ€์‹ ์— "u1000flw" ๋ผ๊ณ  ํ‚ค๋ฅผ ์ •ํ•˜๋ฉด ๋‚˜์ค‘์— ํ‚ค๋งŒ๋ณด๊ณ  ์ด๊ฒƒ์ด ๋ฌด์—‡์— ๊ด€๋ จ๋œ ํ‚ค์ธ์ง€ ํŒŒ์•…ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ์ด์ฃ . ์งง์€ ํ‚ค๊ฐ€ ์•„๋ฌด๋ฆฌ ๋” ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ• ์ง€๋ผ๋„ ํฐ ์ฐจ์ด๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ ๋‹นํžˆ ๊ธธ์ด๋ฅผ ๋Š˜๋ ค์„œ ๊ฐ€๋…์„ฑ์žˆ๋Š” ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค.
  • ์Šคํ‚ค๋งˆ์— ์ง‘์ค‘ํ•˜์„ธ์š”. ์˜ˆ๋ฅผ๋“ค์–ด, "user:1000"์ฒ˜๋Ÿผ "object-type:id" ์‹์˜ ํ‚ค ๋ช…๋ช…๊ทœ์น™์€ ์ข‹์€ ์˜ˆ ์ž…๋‹ˆ๋‹ค. ๋งˆ์นจํ‘œ(.)๋‚˜ ๋Œ€์‰ฌ(-)๋ฅผ ์ด์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋‹จ์–ด๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค. "comment:1234:reply.to" ๋˜๋Š” "comment:1234:reply-to" ์ฒ˜๋Ÿผ ๋ง์ด์ฃ .
  • ํ‚ค ํ•˜๋‚˜๋ฅผ ์ €์žฅํ•˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์‚ฌ์ด์ฆˆ๋Š” 512 MB ์ž…๋‹ˆ๋‹ค. ์„ค๋งˆ ํ‚ค ์ €์žฅํ•˜๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ผ์€ ์—†๊ฒ ์ฃ ?


์ž ๊ทธ๋Ÿฌ๋ฉด ์ด์ œ Redis ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ‚ค ๊ด€๋ จ ๋ช…๋ น์–ด์˜ ์‚ฌ์šฉ๋ฒ• ๋ฐ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์šฐ์„  ๋ฌธ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Syntax (๋ฌธ๋ฒ•)

redis 127.0.0.1:6379> {๋ช…๋ น์–ด} {ํ‚ค}

{๋ช…๋ น์–ด} ์ž๋ฆฌ์—๋Š” ํ‚ค ๊ด€๋ จ ๋ช…๋ น์–ด๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ๋ฅผ ๊ฐ™์ด ์‚ดํŽด๋ณผ๊นŒ์š”?

Example (์˜ˆ์ œ)

redis 127.0.0.1:6379> SET study:redis redis OK redis 127.0.0.1:6379> DEL study:redis (integer) 1

์œ„ ์˜ˆ์ œ์—์„œ DEL, SET ์€ ๋ช…๋ น์–ด ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  study:redis ๊ฐ€ ๋ฐ”๋กœ key์ž…๋‹ˆ๋‹ค. 

์ฒ˜์Œ์—๋Š” SET ๋ช…๋ น์–ด๋กœ study:redis๋ผ๋Š” ํ‚ค์— redis๋ผ๋Š” ๊ฐ’์„ ์ž…๋ ฅ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. 

๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ DEL๋ช…๋ น์–ด๋กœ ํ•ด๋‹น ํ‚ค๋ฅผ ์‚ญ์ œ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ‚ค๋ฅผ ์‚ญ์ œํ•˜๋ฉด ํ‚ค์— ๋งคํ•‘๋˜์–ด์žˆ๋Š” ๊ฐ’์— ์ ‘๊ทผํ•  ๋ฐฉ๋ฒ•์ด ์—†์–ด์ง€๊ฒ ์ฃ . 

ํ‚ค๋ฅผ ์‚ญ์ œํ•  ๋•Œ ํ‚ค๊ฐ€ ์กด์žฌํ•˜๊ณ  ์ •์ƒ์ ์œผ๋กœ ์‚ญ์ œ๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด (integer) 1 ๊ฐ€ ์ถœ๋ ฅ๋  ๊ฒƒ์ด๊ณ , ์•„๋‹ˆ๋ฉด (integer) 0 ๊ฐ€ ์ถœ๋ ฅ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Redis keys commands ( ๋ ˆ๋””์Šค ํ‚ค ๋ช…๋ น์–ด )

์•„๋ž˜ ํ…Œ์ด๋ธ”์€ ํ‚ค์™€ ๊ด€๋ จ๋œ ๊ธฐ๋ณธ์ ์ธ ๋ช…๋ น์–ด๋ฅผ ๋ช‡ ๊ฐœ๋งŒ ๊ฐ„์ถ”๋ ค ๋ณธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.:

No.

๋ช…๋ น์–ด ๋ฐ ์„ค๋ช…

1DEL key
์ด ๋ช…๋ น์–ด๋Š” ํ‚ค๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ์‚ญ์ œ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค
2

DUMP key 
ํ•ด๋‹น ํ‚ค์— ์ €์žฅ๋œ ๊ฐ’์˜ serialized version์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

3

EXISTS key 
ํ‚ค๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

4

EXPIRE key seconds
์ง€์ •ํ•œ ์‹œ๊ฐ„(์ดˆ)๊ฐ€ ์ง€๋‚˜๋ฉด ํ•ด๋‹น ํ‚ค๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

5

EXPIREAT key timestamp 
ํŠน์ •ํ•œ ์‹œ๊ฐ„์— ํ‚ค๊ฐ€ ์‚ญ์ œ๋  ์ˆ˜ ์žˆ๋„๋ก Unix timestamp ํฌ๋งท์œผ๋กœ ํŠน์ • ์‹œ๊ฐ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

6

PEXPIRE key milliseconds 
ํ‚ค์˜ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

7

PEXPIREAT key milliseconds-timestamp 
ํ‚ค์˜ ๋งŒ๋ฃŒ ์‹œ๊ฐ์„ ์œ ๋‹‰์Šค ๋ฐ€๋ฆฌ์ดˆ ํƒ€์ž„์Šคํƒฌํ”„ ํฌ๋งท์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

8

KEYS pattern 
ํŠน์ • ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ํ‚ค ๋ชฉ๋ก์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

9

MOVE key db 
ํ•ด๋‹น ํ‚ค๋ฅผ ๋‹ค๋ฅธ db๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

10

PERSIST key 
ํ‚ค์— ์„ค์ •๋œ ๋งŒ๋ฃŒ์ผ์‹œ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

11

PTTL key 
ํ•ด๋‹น ํ‚ค๊ฐ€ ๋งŒ๋ฃŒ๋˜๊ธฐ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

12

TTL key 
ํ•ด๋‹น ํ‚ค๊ฐ€ ๋งŒ๋ฃŒ๋˜๊ธฐ ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

13RANDOMKEY 
๋žœ๋คํ‚ค ํ•˜๋‚˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
14

RENAME key newkey 
ํ‚ค ์ด๋ฆ„์„ ์ƒˆ๋กœ์šด ํ‚ค๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

15RENAMENX key newkey 
ํ‚ค ์ด๋ฆ„์„ ์ƒˆ๋กœ์šด ํ‚ค๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. (๋‹จ, ์ƒˆ๋กœ์šด ํ‚ค์™€ ๋™์ผํ•œ ์ด๋ฆ„์˜ ํ‚ค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋งŒ)
16

TYPE key 
ํ‚ค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.