LINUX
2018.10.18 / 14:40

Redis ¼Ò°³¿Í ¼³Ä¡ ¹æ¹ý, º¸¾È ¼³Á¤ ¹æ¹ý(ip Çã¿ë, ºñ¹Ð¹øÈ£ ¼³Á¤)µî ºü¸£°Ô ¼¼ÆÃÇϱâ

hanulbit
Ãßõ ¼ö 125

Redis¶õ?

: Remote Dictionary SystemÀÇ ¾àÀÚ·Î ½±°Ô ¸»Çϸé "Àθ޸𸮠¿ø°Ý ij½Ã ¼­¹ö" Á¤µµ·Î »ý°¢ÇÏ¸é µÈ´Ù.

ÈçÈ÷ »ç¿ëÇÏ¸é µ¥ÀÌÅͺ£À̽º¿Í Å©°Ô ´Ù¸£Áö ¾Ê¾Æ NoSQL DBMS·Î ºÐ·ùÇÒ ¼öµµ ÀÖ°í ÀÎ ¸Þ¸ð¸®¶ó´Â Ư¼º¿¡ ¶§¹®¿¡ In memory ¼Ö·ç¼ÇÀ¸·Î ºÐ·ùÇÒ ¼öµµ ÀÖ´Ù.

Àú °°Àº ÃÊ±Þ °³¹ßÀÚ ¼öÁØ¿¡¼­ ¼³¸íÇϸé DB¶û ´Ù¸¦°Ô ¾ø´Ù. OracleÀ̳ª MySQLó·³ redis-server process¸¦ ip, port¿¡ ¶ç¿ö³õ°í Á¢±ÙÇؼ­ <key, value> ÀúÀåÇÏ°í °¡Á®´Ù ¾²°íÇÏ´Â°Ô ÀüºÎ´Ù.

´õ ÀÌ»ó ¼³¸íÇÒ°Ô ¾ø´Ù. ¸¶Ä¡ mybatis°¡ µû·Î Ã¥À¸·Î ³ª¿ÀÁö ¾Ê´Â °Íó·³ redis °ø½Ä ȨÆäÀÌÁö»Ó¸¸ ¾Æ´Ï¶ó ÀÏ¹Ý ºí·Î±×°°Àº »çÀÌÆ®¸¸ ºÁµµ ÃæºÐÈ÷ ÀÌÇØÇÏ°í »ç¿ë°¡´ÉÇϱ⠶§¹®¿¡ redisÃ¥µµ µû·Î ¾ø´Ù. (¹°·Ð ÃÖÀûÈ­, °íµµÈ­¸¦ À§ÇÑ Ã¥Àº ÀÖ´Ù)

¸Þ¸ð¸®¸¦ ÀÌ¿ëÇÏ¿© °í¼ÓÀ¸·Î <key, value> ½ºÅ¸ÀÏÀÇ µ¥ÀÌÅ͸¦ ÀúÀåÇÏ°í ºÒ·¯¿Ã ¼ö ÀÖ´Â ¿ø°Ý ½Ã½ºÅÛ "

À¸·Î ÀÌÇØÇÏ°í ³Ñ¾î°¡¸é µÈ´Ù.


<Key, Value>

<key, value> ½ÖÀ¸·Î µ¥ÀÌÅ͸¦ ÀúÀåÇÏ°í ¾²´Â °ÍÀº ÆÄÀ̽ãÀÇ Dictionary ¶Ç´Â ÀÚ¹Ù³ª ÀÚ¹Ù½ºÅ©¸³Æ®µî¿¡¼­ ¾²ÀÌ´Â Mapµî¿¡¼­ ¸¹ÀÌ ÇغÃÀ» °ÍÀÌ´Ù.

¸¶Âù°¡Áö·Î ÇØ´ç °ª(value)¸¦ ºÒ·¯¿À±â À§ÇÑ key¿Í value¸¦ ½ÖÀ¸·Î ÀúÀåÇÏ°í key¸¦ ÀÌ¿ëÇؼ­ ´Ù½Ã °ªÀ» ºÒ·¯¿À´Â ±¸Á¶´Ù.


- Type

keyŸÀÔÀº StringÀÌ°í value´Â ¼ýÀÚ³ª ¹®ÀÚµî ¹ÙÀ̳ʸ®·Î ÀúÀå°¡´ÉÇÑ ¸ðµç °ÍÀε¥ µ¥ÀÌÅ͸¦ °¡Á®¿Ã ¶§ ½Öµû¿ÈÇ¥·Î °¨½ÎÁö´Â °ÍÀ¸·Î º¸¾Æ StringŸÀÔÀ» ¸®ÅÏÇÏ´Â °Í°°´Ù. (*Á¤È®ÇÏÁö ¾ÊÀº Á¤º¸)

- Key ±ÇÀå»çÇ×

Redis°¡ °á±¹ µ¥ÀÌÅÍ Á¶È¸¶ó´Â Ãø¸é¿¡¼­ Key´Â °£°áÇϸ鼭µµ Áߺ¹µÇÁö ¾Ê¾Æ¾ßÇϴ Ư¼ºÀ» °¡Áø´Ù.

µû¶ó¼­ ³Ê¹« ±ä ¹®ÀÚ¿­Àº Áö¾çÇؾßÇÏ°í ¾î¿ ¼ö ¾ø´Ù¸é ÇؽÃ(SHA1)¸¦ ÀÌ¿ëÇؼ­ ÀúÀåÇϱ⸦ ±Ç°íÇÏ°í ÀÖ´Ù.

±×·¸´Ù°í ³Ê¹« ª°Ô ÀÛ¼ºÇÏ·Á°í "user:1000:flower"¸¦ "u1000flw"·Î ¹Ù²ÙÁö ¸»¶ó´Â °ÍÀÌ´Ù.

¾ÆÁÖ ÀÛÀº Â÷ÀÌ¶ó¼­ ¼º´É¿¡ ¿µÇâÀ» ¾ÆÁÖ ¹Ì¹ÌÇÏ°Ô ¹ÌÄ¡´Â ¹Ý¸é °¡µ¶¼ºÀ» Å©°Ô ÇØÄ¡±â ¶§¹®¿¡ ÀûÀýÈ÷ »ç¿ëÇÒ °ÍÀ» ±ÇÀåÇÑ´Ù.

Value format

valueÀÇ ÇüÅ´ string, sets, sorted-sets, hashes, lists°¡ ÀÖ´Ù.

ÁÖ·Î »ç¿ëÇÏ´Â ÇüÅ´ String, list°¡ µÉ °Í °°´Ù.

<±×¸² Ãâó : http://bcho.tistory.com/654  (Á¶´ëÇùÀÇ ºí·Î±×)>

°£´ÜÇÏ°Ô ¼³¸íÇϸé,

string : ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ´Â ´ÜÀÏ °ª

lists : °ªµéÀÌ ¿©·¯ °³·Î µé¾î°¡´Â ÇüÅÂ, ¹è¿­ ¾ÕµÚ(¿ÞÂÊ,¿À¸¥ÂÊ)À¸·Î ³Ö°í »¬ ¼ö ÀÖÀ½

sets : °ªµéÀÌ ¿©·¯ °³·Î µé¾î°¡´Â ÇüÅ´ ¶È°°À¸³ª °ªµéÀÌ Áߺ¹µÉ ¼ö ¾øÀ½, lists´Â Áߺ¹ °¡´É

sorted sets : °ªµéÀº sets¿Í ¶È°°ÀÌ µé¾î°¡°í Ãß°¡·Î score(¼ýÀÚ)¸¦ ÀúÀåÇÔ. score¸¦ ±âÁØÀ¸·Î Á¤·ÄÇؼ­ º¸¿©ÁÖ´Â ±â´ÉÀÌ ÀÖÀ½.

hashs : ¿©·¯ field¿Í value¸¦ °¡Áø ±¸Á¶·Î 40¾ï°³ÀÇ <field, value>½ÖÀ» ³ÖÀ» ¼ö ÀÖÀ½. "key-field-value"

- Value ±ÇÀå »çÇ×

valueÀÇ °æ¿ì lists, sets, hashs¿Í °°ÀÌ ¿©·¯°³¸¦ ÀúÀåÇÒ ¼ö ÀÖ´Â Çü½ÄÀÌ ÀÖ´Ù. ¾Õ¼­ ¸»ÇÑ °Íó·³ hashs´Â ÇϳªÀÇ key¿¡ 40¾ï°³Á¤µµÀÇ °ªÀ» ÀúÀåÇÒ ¼ö Àִµ¥ ÀÌ·¸°Ô ¸¹ÀÌ ÀúÀåÇÏ´Â °ÍÀº ÇÏ¸é ¾ÈµÈ´Ù. (¼º´É»óÀÇ ÀÌÀ¯)


- Expire ¼³Á¤

redis¿¡¼­ »ç¿ëÇÏ´Â <key,value>½Ö¿¡ ¸¸·á½Ã°£(Expire seconds)À» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.

°è¼ÓÇؼ­ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇؼ­´Â Á¦ÇÑµÈ ¸Þ¸ð¸®°¡ °¨´çÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ¹Ýµå½Ã »ç¿ëÇؾßÇÑ´Ù.

ÇÁ·Î±×·¡¹Ö ¾ð¾îº°·Î Áö¿øÇÏ´Â ¶óÀ̺귯¸®¿¡¼­ °£´ÜÇÑ ÄÚµå·Î »ç¿ëÀÌ °¡´ÉÇÒ °ÍÀÌ´Ù.

expire¸¦ ¼³Á¤ÇÏÁö ¾Ê¾Ò´õ¶óµµ ¸Þ¸ð¸®°¡ ¼³Á¤µÈ °ªº¸´Ù ¸¹ÀÌ »ç¿ëÇÏ·Á°í ÇÏ¸é ¸¸·á ½Ã°£ÀÌ µÇÁö ¾Ê¾Ò¾îµµ Á¦°ÅÇÑ´Ù.

 

***** Âü°í·Î Redis´Â ½Ì±Û¾²·¹µå·Î ¸í·É¾î¸¦ ó¸®Çϱ⠶§¹®¿¡ ÇÑ ¹ø¿¡ ÇϳªÀÇ ¸í·É¾î¸¦ ó¸®ÇÑ´Ù.

µû¶ó¼­ cpu, memory¸¦ ¸¹ÀÌ »ç¿ëÇÏ´Â ¸í·É¾î¿Í ±¸Á¶¸¦ Áö¾çÇؾßÇÑ´Ù.

+ redisµµ °è¼Ó ¸Þ¸ð¸®¿¡¸¸ ÀÖ´Ù°¡ µ¥ÀÌÅÍ°¡ »ç¶óÁö´Â °ÍÀÌ ¾Æ´Ï¶ó µð½ºÅ©¿¡ ÀúÀåÇÒ ¼ö ÀÖ´Â ±â´ÉÀÌ ÀÖ´Ù. (RDB, AOF) ÀûÀýÈ÷ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¼º´É¿¡ ¹®Á¦°¡ ¸¹¾ÆÁö¹Ç·Î ³ªÁß¿¡ ¾Ë¾Æº»´Ù. ¾ÖÃÊ¿¡ ½Ç½Ã°£ ij½Ã ¼­¹ö·Î ÀÌ¿ëÇÒ °ÍÀ̶ó »ç¿ëÇÒÁö´Â ¾ÆÁ÷ ¸ð¸£°ÚÀ½)


Redis ¼³Ä¡Çϱâ

Redis´Â window¿¡¼­ (°ø½ÄÀûÀ¸·Î) ¼³Ä¡ÇÒ ¼ö ¾ø´Ù. ±×¸®°í °¡»ó¸Ó½Å¿¡¼­´Â ¼º´ÉÀÇ ÇÑ°è°¡ Àֱ⠶§¹®¿¡ ÀÏ¹Ý ¸®´ª½º ¼­¹ö¿¡¼­ ¼³Ä¡ÇÏ°í »ç¿ëÇϱ⸦ ±ÇÀåÇÑ´Ù. (ºñ°ø½ÄÀ¸·Î window¿¡¼­ ¼³Ä¡ °¡´É)

- ¸®´ª½º¿¡¼­ ¼³Ä¡ÇÏ´Â ¹æ¹ý (CentOS, ubuntuµî »ó°ü¾øÀ½)

1
2
3
4
5
6
7
8
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
 
sudo make install
 
redis-server


wget http://download.redis.io/redis-stable.tar.gz ¸í·É¾î·Î redis(stable)¸¦ ´Ù¿î¹Þ´Â´Ù.

tar xvzf redis-stable.tar.gz ¸í·É¾î·Î ¾ÐÃàÀ» Ǭ´Ù.

cd redis-stable ¾ÐÃàÀ» Ç®¾î »ý¼ºµÈ redis-stableµð·ºÅ丮¿¡ µé¾î°£´Ù.

make ¸í·É¾î·Î ¼Ò½ºÄڵ带 ÄÄÆÄÀÏÇÑ´Ù.

ÄÄÆÄÀÏÀÌ ¿Ï·áµÇ¸é sudo make install·Î redis¸¦ ¼³Ä¡ÇÑ´Ù.

redis-server ¸í·É¾î·Î redis ¼­¹ö¸¦ Ų´Ù.


[redis ½ÇÇà È­¸é]

4.0.8 ¹öÀüÀÇ redis¼³Ä¡°¡ µÇ¾î ½ÇÇàµÆ°í Port : 6379¿¡¼­ µ¹°íÀÖ°í Process ID°¡ 6107 ÀÎ °Í ±îÁö »ó¼¼È÷ ¾Ë·ÁÁØ´Ù.


°£´ÜÇÑ ¼³Á¤ º¯°æ (port, bind ip, password)

redis°¡ ¼³Ä¡µÈ redis-stableµð·ºÅ丮 ¾È¿¡ "redis.conf" ÆÄÀÏÀÌ ÀÖ´Ù.

¿©±â¼­ ¼³Á¤À» º¯°æÇÒ ¼ö ÀÖ´Ù. (Âü°í·Î ÁÖ¼®À» Æ÷ÇÔÇؼ­ ÆÄÀÏ ³»¿ëÀÌ ²Ï ±â´Ï ctrl + F ·Î Àß Ã£¾Æ¼­ º¯°æÇÑ´Ù.

Port

Æ÷Æ®¹øÈ£´Â À§ »çÁø¿¡¼­ º¸µí port ºÎºÐÀ» º¯°æÇÏ¸é µÈ´Ù. ±âº»ÀûÀ¸·Î 6379Æ÷Æ®·Î µÇ¾îÀÖ´Ù. º¯°æÇÏ°í Àç½ÇÇà

- Bind

redis´Â default·Î localhost(127.0.0.1)¿¡¼­¸¸ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï µÇ¾îÀÖ´Ù.

´Ü¼øÇÏ°Ô »ý°¢Çصµ ³» ¼­¹ö¿¡ ¾Æ¹«³ª Á¢¼ÓÇؼ­ set, getÀ» ÇÑ´Ù´Â °ÍÀº ÀÌÇØÇÒ ¼ö ¾ø´Ù. µû¶ó¼­ bind¶ó´Â ºÎºÐ¿¡´Ù°¡ ÇØ´ç redis¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Â ip¸¦ Àû¾îÁÖ¸é ÇØ´ç ip¸¸ redis-server¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.

bind 192.168.0.20 192.168.0.21 208.99.21.64 ÀÌ·±½ÄÀ¸·Î ÁöÁ¤Çϸé 3°³ÀÇ ip¿¡¼­¸¸ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù.

¶ÇÇÑ bind 0.0.0.0 ¶ó°í ¼³Á¤Çϰųª bindºÎºÐÀ» ÁÖ¼®Ã³¸®(#)Çعö¸®¸é ¸ðµç ip¿¡¼­ Á¢±ÙÀÌ °¡´ÉÇÏ°Ô µÈ´Ù.

º¸¾È»ó ¾ÆÁÖ Ãë¾àÇÏ°Ô µÇ¹Ç·Î test¿Ü¿¡ ½ÇÁ¦ ¿î¿µ´Ü°è¿¡¼­´Â ÇÏ¸é ¾ÈµÈ´Ù.

- Password(requirepass)

IP·Î¸¸ Á¢±Ù¿¡ Á¦ÇÑÀ» µÎ´Â °Í »Ó¸¸ ¾Æ´Ï¶ó ºñ¹Ð¹øÈ£¸¦ ¼³Á¤Çؼ­ redis Á¢¼Ó¿¡ Á¦ÇÑÀ» µÑ ¼ö ÀÖ´Ù.

default·Î ÁÖ¼®Ã³¸®µÇ¾îÀÖ¾î ºñ¹Ð¹øÈ£°¡ ÇÊ¿ä¾ø´Ù. ¸¸¾à ºñ¹Ð¹øÈ£¸¦ ¼³Á¤ÇÏ°í ½ÍÀ¸¸é ÁÖ¼®À» Ç®°í foobared´ë½Å ¿øÇÏ´Â ¾ÏÈ£¸¦ Àû¾î³ÖÀ¸¸é µÈ´Ù.

±×¸®°í ÇÁ·Î±×·¡¹Ö¿¡¼­´Â ÇØ´ç redis¶óÀ̺귯¸®¿¡¼­ connectÇÏ´Â ºÎºÐ¿¡ ºñ¹Ð¹øÈ£¸¦ ³ÖÀ¸¸é µÇ°í, redis-cli¸¦ ÀÌ¿äÇÏ´Â »ç¶÷Àº "auth foobared(ºñ¹Ð¹øÈ£)"¶ó´Â ¸í·É¾î¸¦ ÀÔ·ÂÇÏ°í redis ¸í·É¾î¸¦ »ç¿ëÇÏ¸é µÈ´Ù.


Âü°í »çÀÌÆ®

http://bcho.tistory.com/654



Ãâó: http://jeong-pro.tistory.com/139 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]