Redis ¼Ò°³¿Í ¼³Ä¡ ¹æ¹ý, º¸¾È ¼³Á¤ ¹æ¹ý(ip Çã¿ë, ºñ¹Ð¹øÈ£ ¼³Á¤)µî ºü¸£°Ô ¼¼ÆÃÇϱâ
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 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]