Äúµ±Ç°µÄλÖ㺸ֲĠ> Ð͸֠> Êг¡·ÖÎö

redis¼¯Èº²¿Êð·½°¸£¬redis¼¯Èº²¿Êðģʽ

À´Ô´:Í·Ìõ ×÷Õß: chanong
·ÖÏíµ½
¹Ø×¢µÂÇÚ¸ÖÌúÍøÔÚÏߣº
  • ɨÃè¶þάÂë

    ¹Ø×¢¡Ì

    µÂÇÚ¸ÖÌúÍøÎ¢ÐÅ

ÔÚÏß×Éѯ£º
  • ɨÃè»òµã»÷¹Ø×¢µÂÇÚ¸ÖÌúÍøÔÚÏ߿ͷþ

ÕªÒª£º±¾ÎĵÄÄ¿µÄÊÇÔÚµ¥»úÉϹ¹½¨Ò»¸öRedis¼¯Èº£¬Í¨¹ýÔÚ²»Í¬µÄTCP¶Ë¿ÚÉÏÆô¶¯¶à¸öʵÀý£¬ÐγÉÒ»¸ö¼¯Èº£¬²¢¼Ç¼¹¹½¨¹ý³ÌÖÐÓöµ½µÄÏÝÚå¡£°²×°×¼±¸centos °æ±¾£º 6.7 redis °æ±¾£º 3.2.3 °²×°·½Ê½£º Ô´Âë°²×°·þÎñÆ÷£º 1 ʹÓÃ˵Ã÷ÕâÀïĬÈ**²×°µ¥¸öredis 1. Æô¶¯¶à¸öRedisʵÀýRedis°²×°ÔÚÏÂÃæ´´½¨Ò»¸öĿ¼´ØÕâÁù¸öÅäÖÃÎļþ½«ÓÃÓÚÆô¶¯Áù¸öʵÀý¡£ÉÔºó½«Ê¹ÓÃÕâÁù¸öʵÀýÀ´Ðγɼ¯Èº¡£

±¾ÎĵÄÄ¿µÄ

ÒªÔÚµ¥Ì¨¼ÆËã»úÉϹ¹½¨Redis ¼¯Èº£¬Çëͨ¹ý²»Í¬µÄTCP ¶Ë¿ÚÆô¶¯¶à¸öʵÀý£¬Ðγɼ¯Èº£¬²¢¼ÇϹ¹½¨¹ý³ÌÖÐÓöµ½µÄÈκÎÏÝÚå¡£

×¼±¸°²×°

Sentos°æ±¾£º6.7

Redis°æ±¾£º3.2.3

°²×°·½Ê½£ºÔ´Âë°²×°

·þÎñÆ÷£º1

²½

ÕâÀïĬÈ**²×°ÁËһ̨Redis¡£

1.Æô¶¯¶à¸öRedisʵÀý

ÔÚRedis°²×°Ä¿Â¼Ï´´½¨Ä¿Â¼´Ø£¬Ð´Èë7000.confµ½7005.conf 6¸öÅäÖÃÎļþ¡£ÕâÁù¸öÅäÖÃÎļþÓÃÓÚÆô¶¯Áù¸öʵÀý¡£ÉÔºó½«Ê¹ÓÃÕâÁù¸öʵÀýÀ´Ðγɼ¯Èº¡£

ÒÔ7000.confΪÀý£¬ÅäÖÃÎļþ±ØÐë°üº¬ÒÔÏÂÌõÄ¿£º

ÿ¸öÆô¶¯6 ¸öʵÀý

Æô¶¯³É¹¦ºóÎÒÃÇ¿´Ò»ÏÂÁ÷³Ì

ÖÁ´Ë£¬»úÆ÷ÉÏÒѾ­´´½¨ÁË6¸öʵÀý£¬ip=192.168.186.91£¬¶Ë¿ÚºÅÔÚport=7000µ½7005Ö®¼ä¡£

2.°²×°ºì±¦Ê¯

1£©yum°²×°RubyºÍÒÀÀµ°ü¡£

[root@itfirst redis_cluster]# yum -y install Ruby Ruby-devel Rubygems rpm-build

2£©Ê¹ÓÃgemÃüÁî°²×°Redis½Ó¿Ú

[root@itfirst redis_cluster]# gem install redis

ERROR: °²×°redis:ʱ³ö´í

redis ÐèÒªRuby °æ±¾=2.2.2¡£

ÕâÒ»²½³öÏÖÁËbug£¬¶ÈÄï¸æËßÎÒ£¬ÎÒµÄRuby°æ±¾Ì«µÍ£¬ÐèÒªÉý¼¶¡£

3£©Ruby°æ±¾Éý¼¶

°²×°RVM¡£ÎÒ²»ÖªµÀÕâÊÇʲô£¬µ«¸Ð¾õÏñÊÇRuby µÄ°ü¹ÜÀíÆ÷¡£

[root@itfirst redis_cluster]#curl -L get.rvm.io | bash -stead

% ×ܼÆ% ÒѽÓÊÕ% Xferd ƽ¾ùËÙ¶Èʱ¼äʱ¼äʱ¼äµ±Ç°

Dload ÉÏ´«Ê£Óà×ÜʹÓÃÂÊ

100 24090 100 24090 0 0 10919 0 0:00:02 0:00:02 --:--:-- 91242

https://ÏÂÔØgithub.com/rvm/rvm/archive/1.29.3.tar.gz

https://ÏÂÔØgithub.com/rvm/rvm/releases/download/1.29.3/1.29.3.tar.gz.asc

Ç©ÃûÓÉgpg: ÔÚ2017 Äê9 ÔÂ11 ÈÕÐÇÆÚÒ»04:59:21 CST ʹÓÃRSA ´´½¨£¬ÃÜÔ¿ºÅBF04FF17¡£

gpg: ÎÞ·¨Ñé֤ǩÃû£ºÈ±ÉÙ¹«Ô¿

¾¯¸æ£¬RVM 1.26.0 ÒýÈëÁËÇ©Ãû°æ±¾£¬²¢ÔÚ·¢ÏÖGPG Èí¼þʱ½øÐÐ×Ô¶¯Ç©Ãû¼ì²é¡£¼ÙÉèÄúÐÅÈÎMichal Papis£¬Çëµ¼Èëmpapis ¹«Ô¿£¨ÏÂÔØÇ©Ãû£©¡£

¡°/usr/local/rvm/archives/rvm-1.29.3.tgz¡±µÄGPG Ç©ÃûÑéÖ¤- ¡°https://github.com/rvm/rvm/releases/download/1.29.3/1.29.3.tar.gz.asc¡±Ê§°Ü'£¡³¢ÊÔ°²×°GPG v2£¬È»ºó»ñÈ¡publickey:

gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

Èç¹ûʧ°ÜÔò·µ»Ø£º

ÃüÁîcurl -sSL https://rvm.io/mpapis.asc | gpg2 --import -

ÃÜÔ¿¿ÉÒԺͣº¶Ô±È

https://rvm.io/mpapis.asc

https://keybase.io/mpapis

×¢Ò⣺ GPG °æ±¾2.1.17 ÓÐÒ»¸ö´íÎ󣬸ôíÎó»áÔÚ´ÓÔ¶³Ì·þÎñÆ÷¼ìË÷ÃÜԿʱµ¼Ö´íÎó¡£Çë½µ¼¶»òÉý¼¶µ½½Ïеİ汾£¨Èç¹ûÓУ©»òʹÓÃÉÏÊöµÚ¶þÖÖ·½·¨¡£

´Ë²Ù×÷²úÉúÒÔϽá¹û£º

gpg2 recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

È»ºóʹÓôËÃÜÔ¿ÏÂÔØ²¢Éý¼¶Ruby¡£

[root@itfirst redis_cluster]# gpg --keyserver hkp: //keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

gpg: ´Óhkp·þÎñÆ÷keys.gnupg.netÏÂÔØÃÜÔ¿¡°D39DC0E3¡±

gpg: /root/.gnupg/trustdb.gpg£ºÒѽ¨Á¢ÐÅÈÎÊý¾Ý¿â

gpg: ÃÜÔ¿D39DC0E3£ºÒѵ¼È빫Կ¡°Michal Papis£¨RVM Ç©Ãû£©¡±

gpg: δÕÒµ½¾ø¶Ô¿ÉÐŵÄÃÜÔ¿

gpg: ½ø³Ì×ÜÊý£º1

gpg: µ¼È룺1 (RSA: 1)

[root@itfirst redis_cluster]#curl -sSL https://get.rvm.io | bash -s stable

https://ÏÂÔØgithub.com/rvm/rvm/archive/1.29.3.tar.gz

https://ÏÂÔØgithub.com/rvm/rvm/releases/download/1.29.3/1.29.3.tar.gz.asc

Ç©ÃûÓÉgpg: ÔÚ2017 Äê9 ÔÂ11 ÈÕÐÇÆÚÒ»04:59:21 CST ʹÓÃRSA ´´½¨£¬ÃÜÔ¿ºÅBF04FF17¡£

gpg: À´×Ô¡°Michal Papis£¨RVM Ç©Ãû£©¡±µÄÍêÕûÇ©Ãû

gpg: Ò²³ÆÎª¡°Michal Papis¡±

gpg: ÓÖÃû¡°[´óСΪ5015 µÄjpeg ͼÏñ]¡±

gpg: ¾¯¸æ£º´ËÃÜÔ¿ÉÐδ¾­¹ý¿ÉÐÅÇ©ÃûµÄÑéÖ¤¡£

gpg: ûÓÐÖ¤¾Ý±íÃ÷´ËÇ©ÃûÊôÓÚÆäÉù³ÆµÄËùÓÐÕß¡£

Ö÷Ô¿³×Ö¸ÎÆ£º409B 6B17 96C2 7546 2A17 0311 3804 BB82 D39D C0E3

×ÓÃÜÔ¿Ö¸ÎÆ£º62C9 E5F4 DA30 0D94 AC36 166B E206 C29F BF04 FF17

GPG ÑéÖ¤ÁË¡°/usr/local/rvm/archives/rvm-1.29.3.tgz¡±

´´½¨×é¡°rvm¡±

½«RVM °²×°µ½/usr/local/rvm/

/usr/local/rvm/ÖеÄRVM °²×°¼´½«Íê³É£º

* Ê×ÏÈ£¬ËùÓн«Ê¹ÓÃrvm µÄÓû§¶¼±ØÐëÌí¼Óµ½¡°rvm¡±×éÖС£

È»ºó×¢Ïú- ÔٴεǼ£¬ÈκÎʹÓÃrvm µÄÈ˶¼½«Ê¹ÓÃ`umask u=rwx,g=rwx,o=rx` ½øÐвÙ×÷¡£

* Òª¿ªÊ¼Ê¹ÓÃRVM£¬ÄúÐèÒªÔËÐС°source /etc/profile.d/rvm.sh¡±¡£

´ò¿ªËùÓÐshell ´°¿Úºó£¬ÔÚ¼«ÉÙÊýÇé¿öÏ£¬Äú¿ÉÄÜÐèÒªÖØÐ´ò¿ªËùÓÐshell ´°¿Ú¡£

½ÓÏÂÀ´£¬»ñÈ¡»·¾³²¢Ê¹rvm ¿ÉÓá£

[root@itfirst ~]# Ô´/usr/local/rvm/scripts/rvm

ÏÔʾ¿ÉÓõÄRuby °æ±¾

[root@itfirst ~]# ÒÑÖªµÄRVM Áбí

#MRIºì±¦Ê¯

[ºì±¦Ê¯-]1.8.6[-p420]

[ruby-]1.8.7[-head] # Head °²È«ÐÔÒÑ·¢²¼

[ºì±¦Ê¯-]1.9.1[-p431]

[ºì±¦Ê¯-]1.9.2[-p330]

[ºì±¦Ê¯-]1.9.3[-p551]

[ºì±¦Ê¯-]2.0.0[-p648]

[ºì±¦Ê¯-]2.1[.10]

[ºì±¦Ê¯-]2.2[.7]

[ºì±¦Ê¯-]2.3[.4]

[ºì±¦Ê¯-]2.4[.1]

ºì±¦Ê¯Í·

# fork use: RVM install Ruby-head--url https://github.com/github/ruby.git --branch 2.2

#JRuby

jruby-1.6[.8]

jruby-1.7[.27]

jruby[-9.1.13.0]

Öì±ÈÍ·

#³±ÈÄáÎÚ˹

rbx-1[.4.3]

rbx-2.3[.0]

rbx-2.4[.1]

rbx-2[.5.8]

rbx-3[.84]

RBXÍ·

µ°°×ʯ

µ°°×ʯ

# ×îСRuby ʵÏÖ- ISO 30170:2012

mruby-1.0.0

mruby-1.1.0

mruby-1.2.0

ķ³±È-1[.3.0]

ķ³±È[-Í·]

# Ruby ÆóÒµ°æ

Àî-1.8.6

Àî[-1.8.7][-2012.02]

»ÆÓñ

»ÆÓñ

#´ÅÐü¸¡

Ö±Ïßµç»ú³µ[-Í·]

´ÅÐü¸¡-1.0.0

#Mac OS X Snow Leopard »ò¸ü¸ß°æ±¾

Âó¿Ë³±È-0.10

Âó¿Ë³±È-0.11

Âó¿Ë³±È[-0.12]

Âó¿ËÀ³Î¬¡¤ÄÎÌØÀû

Âó¿Ë¬ά½Ç

#Ìúºì±¦Ê¯

Ìúºì±¦Ê¯[-1.1.3]

Ìúºì±¦Ê¯Í·

¿ÉÒÔ¿´µ½×îа汾ÊÇ2.4.1¡£±¾Îݲװ2.3.0¡£

ÖÁ´Ë£¬Ruby°æ±¾ÒѾ­Éý¼¶Íê±Ï¡£

[root@itfirst ~]# RVM°²×°2.3.0

ËÑË÷¶þ½øÖÆRuby ¿ÉÄܷdz£ºÄʱ¡£

ÕÒµ½Ô¶³ÌÎļþhttps://rvm_io.global.ssl.fastly.net/binaries/centos/6/x86_64/ruby-2.3.0.tar.bz2

¼ì²éCentos ÒªÇó¡£

Centos °²×°ÒªÇó¡£

°²×°ËùÐèµÄÈí¼þ°ü£º autoconf¡¢automake¡¢bison¡¢libffi-devel¡¢libtool¡¢readline-devel¡¢sqlite-devel¡¢libyaml-devel.

ÒªÇó°²×°³É¹¦¡£

Ruby-2.3.0 - #configure

Ruby-2.3.0-#download

% ×ܼÆ% ÒѽÓÊÕ% Xferd ƽ¾ùËÙ¶Èʱ¼äʱ¼äʱ¼äµ±Ç°

Dload ÉÏ´«Ê£Óà×ÜʹÓÃÂÊ

100 21.9M 100 21.9M 0 0 266k 0 0:01:24 0:01:24 --:--:-- 278k

ÏÂÔØµÄµµ°¸Ã»ÓÐУÑéºÍ¡£ÔÚÓû§ÉèÖÃÖмǼУÑéºÍ¡£

Ruby-2.3.0 - #validate ´æµµ

Ruby-2.3.0 - #extract

Ruby-2.3.0 - #ÑéÖ¤¶þ½øÖÆÎļþ

Ruby-2.3.0-#setup

Ruby-2.3.0 - #gemset ´´½¨ÁË/usr/local/rvm/gems/ruby-2.3.0@global

Ruby-2.3.0 - #µ¼Èëgemset /usr/local/rvm/gemsets/global.gems....

Ruby-2.3.0 - #Éú³ÉÈ«¾Ö°ü×°Æ÷.

Ruby-2.3.0 - #gemset ´´½¨ÁË/usr/local/rvm/gems/ruby-2.3.0

Ruby-2.3.0 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems ÆÀ¹ÀΪ¿Õgem Áбí

Ruby-2.3.0 - #Éú³ÉĬÈ**ü×°Æ÷.

4£©°²×°gem redis½Ó¿Ú

[root@itfirst ~]# RVMʹÓÃ2.3.0

ʹÓÃ/usr/local/rvm/gems/ruby-2.3.0

[root@itfirst ~]# RVM ɾ³ý1.8.7

Ruby-1.8.7-head - #ÒѾ­Ïûʧ

ʹÓÃ/usr/local/rvm/gems/ruby-2.3.0

[root@itfirst ~]# Ruby --version

Ruby 2.3.0p0£¨2015-12-25 ÐÞ¶©°æ53290£©[x86_64-linux]

[root@itfirst ~]# gem install redis

ÕýÔÚ»ñÈ¡£º redis-4.0.1.gem (100%)

redis-4.0.1°²×°³É¹¦

½âÎöredis-4.0.1Îĵµ

°²×°redis-4.0.1µÄriÎĵµ

0ÃëºóRedisÎĵµ°²×°Íê³É

°²×°ÁË1 ¸ö±¦Ê¯

5£©°²×°Rubygems

# yum install -y Rubygems

ÖÁ´Ë£¬RubyÔËÐÐËùÐèµÄ»·¾³ºÍredis-trib.rbÒѾ­°²×°Íê±Ï¡£

3.Redis¼¯Èº´î½¨

Ò»µ©ÄúÓµÓÐÁËRuby Ö´Ðл·¾³£¬Äú¾Í¿ÉÒÔ¿ªÊ¼Ê¹ÓÃÇ°ÃæµÄÁù¸öʵÀýÀ´¹¹½¨¼¯Èº¡£

redis-trib.rb ´´½¨--replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 192.168.186 .91:7004 192.168.186.91:7005

ÓÐ3¸öÖ÷È˺Í3¸öÅ«Á¥¡£Çë×ñÑ­ÒÔÏÂÁù¸öʾÀý¡£¸ñʽΪip: ¶Ë¿Ú¡£

¡¾ÕâÀïÓÐÒ»¸ö¶´¡¿

µÚÒ»¸ö¿Ó

[root@itfirst src]# redis-trib.rb create --replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 1 92.168.186.91:7004 192.168.186.91:7005

-bash: redis-trib.rb: ÃüÁîδÕÒµ½

[root@itfirst src]# cp redis-trib.rb /usr/local/bin

ÐèÒª½«redis-trib.rb¸´ÖƵ½/usr/local/binĿ¼Ï¡£

µÚ¶þ¸ö¿Ó

[root@itfirst bin]# redis-trib.rb create --replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 192 .168.186.91:7004 192.168.186.91:7005

´´½¨¼¯Èº

[ERR] ½Úµã192.168.186.91:7000 ²»Îª¿Õ¡£¸Ã½Úµã¿ÉÄÜÒѾ­Á˽âÆäËû½Úµã£¨Ê¹ÓÃCLUSTERNODES ¼ì²é£©£¬»òÕßÊý¾Ý¿â0 °üº¬Ä³Ð©ÃÜÔ¿¡£

ÅÜÍêµÚÒ»¸ö¶´£¬¼ÌÐøÅÜ£¬·¢ÏÖÁ˵ڶþ¸ö¶´£¬ÐҺöÈÄïÔÚ£¬µ«ÍøÉÏÓв»Í¬µÄ˵·¨£¨Ö÷ÒªÊDz©¿Í¡¶¼«¿Íon֮·¡·£©¡£±íʾRedisÊý¾Ý¿âÉÐδÇå³ý¡£

[root@itfirst src]# redis-cli -h 192.168.186.91 -p 7001

192.168.186.91:7001ÉÁ´æÊý¾Ý¿â

ÖªµÀÁË

192.168.186.91:7001 Í£Ö¹Ëü¡£

[root@itfirst src]# redis-cli -h 192.168.186.91 -p 7002

192.168.186.91:7002 ÉÁ´æÊý¾Ý¿â

ÖªµÀÁË

192.168.186.91:7002 Í£Ö¹°É¡£

[root@itfirst src]# redis-cli -h 192.168.186.91 -p 7003

192.168.186.91:7003 FlashÊý¾Ý¿â

ÖªµÀÁË

192.168.186.91:7003 Í£Ö¹°É¡£

[root@itfirst src]# redis-cli -h 192.168.186.91 -p 7004

192.168.186.91:7004ÉÁ´æÊý¾Ý¿â

ÖªµÀÁË

192.168.186.91:7004 Í£Ö¹°É¡£

[root@itfirst src]# redis-cli -h 192.168.186.91 -p 7005

192.168.186.91:7005ÉÁ´æÊý¾Ý¿â

ÖªµÀÁË

192.168.186.91:7005 Í£Ö¹°É¡£

[root@itfirst src]# redis-trib.rb create --replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 1 92.168.186.91:7004 192.168.186.91:7005

´´½¨¼¯Èº

ÔÚ6 ¸ö½ÚµãÉÏÖ´ÐйþÏ£²Û·ÖÅä.

ÈýÖ÷Óãº

192.168.186.91:7000

192.168.186.91:7001

192.168.186.91:7002

½«¸±±¾192.168.186.91:7003 Ìí¼Óµ½192.168.186.91:7000

½«¸±±¾192.168.186.91:7004 Ìí¼Óµ½192.168.186.91:7001

½«¸±±¾192.168.186.91:7005 Ìí¼Óµ½192.168.186.91:7002

M: 61b2b608177374fd0382c872f996a2c25f62daac 192.168.186.91:7000

²å²Û£º0-5460,9189£¨5462¸ö²å²Û£©Ö÷¿Ø

M: 50e678c98c31baa4ece1cba096cc34b4545456f3 192.168.186.91:7001

²å²Û£º5461-10922£¨5462¸ö²å²Û£©Ö÷

M: b8dc855a92d1c9a6e358380286a757011c40601d 192.168.186.91:7002

²å²Û£º9189¡¢10923-16383£¨5462 ¸ö²å²Û£© Ö÷Õ¾

S: 42392d8b4665500b3229b5c5b9dcebed311c9cdf 192.168.186.91:7003

¿Ë¡61b2b608177374fd0382c872f996a2c25f62daac

S: 4e8cd9bae1dc0ffa63a3b8315e3f92b0490e65f8 192.168.186.91:7004

¿Ë¡50e678c98c31baa4ece1cba096cc34b4545456f3

S: 3344981c3290c39b0d9f427842398c17de835293 192.168.186.91:7005

ÖØ¸´b8dc855a92d1c9a6e358380286a757011c40601d

ÎÒ¿ÉÒÔÉèÖÃÒÔÉÏÅäÖÃÂ𣿣¨ÇëÊäÈëyes½ÓÊÜ£©: ÊÇ

/usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis/client.rb:119:in `call': ERR ²å²Û9189 ÒÑæ£¨Redis:CommandError£©

À´×Ô/usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:2764: Öеġ°×èÈû·½·¨_ȱʧ¡±

/usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:45:in À´×Ô¡°Í¬²½¿é¡±

À´×Ô/usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214: ÖеÄ`mon_synchronize'

/usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:45:in À´×Ô¡°Í¬²½¡±

À´×Ô/usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:2763: ÖеÄ`method_missing'

À´×Ô/usr/local/bin/redis-trib.rb:212: ÖеÄ`flush_node_config'

À´×Ô/usr/local/bi

n/redis-trib.rb:776:in `block in flush_nodes_config' from /usr/local/bin/redis-trib.rb:775:in `each' from /usr/local/bin/redis-trib.rb:775:in `flush_nodes_config' from /usr/local/bin/redis-trib.rb:1296:in `create_cluster_cmd' from /usr/local/bin/redis-trib.rb:1696:in `' µÚÈý¿Ó [root@itfirst src]# redis-trib.rb create --replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 192.168.186.91:7004 192.168.186.91:7005 >>> Creating cluster >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 Adding replica 192.168.186.91:7003 to 192.168.186.91:7000 Adding replica 192.168.186.91:7004 to 192.168.186.91:7001 Adding replica 192.168.186.91:7005 to 192.168.186.91:7002 M: 61b2b608177374fd0382c872f996a2c25f62daac 192.168.186.91:7000 slots:0-5460,9189 (5462 slots) master M: 50e678c98c31baa4ece1cba096cc34b4545456f3 192.168.186.91:7001 slots:5461-10922 (5462 slots) master M: b8dc855a92d1c9a6e358380286a757011c40601d 192.168.186.91:7002 slots:9189,10923-16383 (5462 slots) master S: 42392d8b4665500b3229b5c5b9dcebed311c9cdf 192.168.186.91:7003 replicates 61b2b608177374fd0382c872f996a2c25f62daac S: 4e8cd9bae1dc0ffa63a3b8315e3f92b0490e65f8 192.168.186.91:7004 replicates 50e678c98c31baa4ece1cba096cc34b4545456f3 S: 3344981c3290c39b0d9f427842398c17de835293 192.168.186.91:7005 replicates b8dc855a92d1c9a6e358380286a757011c40601d Can I set the above configuration (type 'yes' to accept): yes /usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis/client.rb:119:in `call': ERR Slot 9189 is already busy (Redis::CommandError) from /usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:2764:in `block in method_missing' from /usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:45:in `block in synchronize' from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize' from /usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:45:in `synchronize' from /usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:2763:in `method_missing' from /usr/local/bin/redis-trib.rb:212:in `flush_node_config' from /usr/local/bin/redis-trib.rb:776:in `block in flush_nodes_config' from /usr/local/bin/redis-trib.rb:775:in `each' from /usr/local/bin/redis-trib.rb:775:in `flush_nodes_config' from /usr/local/bin/redis-trib.rb:1296:in `create_cluster_cmd' from /usr/local/bin/redis-trib.rb:1696:in `' »¹ÊǶÈÄï¿¿Æ×£¬ÔÚ¡¶redis ¿ç»úÆ÷¼¯ÈºÆô¶¯³ö´í¡·²©¿ÍÖÐÕÒµ½Á˴𰸡£ ÕâÊÇÓÉÓÚÖ®¼ä´´½¨¼¯ÈºÃ»Óгɹ¦,ÐèÒª½«nodes.confºÍdirÀïÃæµÄÎļþÈ«²¿É¾³ý¡£ [root@itfirst 7000]# find / -name \"nodes-7000.conf\" /usr/local/redis-3.2.3/src/nodes-7000.conf [root@itfirst 7000]# cd ../../ [root@itfirst src]# rm -rf nodes-700* È»ºóÖØÆôredis·þÎñ¡£ [root@itfirst src]# redis-trib.rb create --replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 192.168.186.91:7004 192.168.186.91:7005 >>> Creating cluster >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 Adding replica 192.168.186.91:7003 to 192.168.186.91:7000 Adding replica 192.168.186.91:7004 to 192.168.186.91:7001 Adding replica 192.168.186.91:7005 to 192.168.186.91:7002 M: 319da27d8668a15d2d2d02afe433247694343459 192.168.186.91:7000 slots:0-5460 (5461 slots) master M: 3da756265e301ac0210760f13e990473f87a3017 192.168.186.91:7001 slots:5461-10922 (5462 slots) master M: 6f336da48c892d8e0c541a864765978ebfbca6d5 192.168.186.91:7002 slots:10923-16383 (5461 slots) master S: ff4cf9d8a141d85c478b9af0358c93bca342c236 192.168.186.91:7003 replicates 319da27d8668a15d2d2d02afe433247694343459 S: 43c2e0d7799e84b449803a68d557c3431e9e047e 192.168.186.91:7004 replicates 3da756265e301ac0210760f13e990473f87a3017 S: 3f174fae106cb6cf7e7f21ed844895ed7c18f793 192.168.186.91:7005 replicates 6f336da48c892d8e0c541a864765978ebfbca6d5 Can I set the above configuration (type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join.... >>> Performing Cluster Check (using node 192.168.186.91:7000) M: 319da27d8668a15d2d2d02afe433247694343459 192.168.186.91:7000 slots:0-5460 (5461 slots) master M: 3da756265e301ac0210760f13e990473f87a3017 192.168.186.91:7001 slots:5461-10922 (5462 slots) master M: 6f336da48c892d8e0c541a864765978ebfbca6d5 192.168.186.91:7002 slots:10923-16383 (5461 slots) master M: ff4cf9d8a141d85c478b9af0358c93bca342c236 192.168.186.91:7003 slots: (0 slots) master replicates 319da27d8668a15d2d2d02afe433247694343459 M: 43c2e0d7799e84b449803a68d557c3431e9e047e 192.168.186.91:7004 slots: (0 slots) master replicates 3da756265e301ac0210760f13e990473f87a3017 M: 3f174fae106cb6cf7e7f21ed844895ed7c18f793 192.168.186.91:7005 slots: (0 slots) master replicates 6f336da48c892d8e0c541a864765978ebfbca6d5 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. 4¡¢ÑéÖ¤¼¯Èº×´Ì¬ µÇ¼¼¯Èº¿Í»§¶Ë£¬-c±êʶÒÔ¼¯Èº·½Ê½µÇ¼ [root@itfirst src]# redis-cli -h 192.168.186.91 -c -p 7002 ²é¿´¼¯Èº×´Ì¬ 192.168.186.91:7002> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:6 cluster_my_epoch:3 cluster_stats_messages_sent:124174 cluster_stats_messages_received:124174 192.168.186.91:7002> cluster nodes 319da27d8668a15d2d2d02afe433247694343459 192.168.186.91:7000 master - 0 1519465974307 1 connected 0-5460 3f174fae106cb6cf7e7f21ed844895ed7c18f793 192.168.186.91:7005 slave6f336da48c892d8e0c541a864765978ebfbca6d5 0 1519465971278 6 connected 6f336da48c892d8e0c541a864765978ebfbca6d5 192.168.186.91:7002 myself,master - 0 0 3 connected 10923-16383 3da756265e301ac0210760f13e990473f87a3017 192.168.186.91:7001 master - 0 1519465972288 2 connected 5461-10922 43c2e0d7799e84b449803a68d557c3431e9e047e 192.168.186.91:7004 slave3da756265e301ac0210760f13e990473f87a3017 0 1519465973298 5 connected ff4cf9d8a141d85c478b9af0358c93bca342c236 192.168.186.91:7003 slave319da27d8668a15d2d2d02afe433247694343459 0 1519465969258 4 connected
ÔðÈα༭£ºµÂÇÚ¸ÖÌúÍø ±êÇ©£º

ÈÈÃÅËÑË÷

Ïà¹ØÎÄÕÂ

¹ã¸æ
µÂÇÚ¸ÖÌúÍø |Êг¡·ÖÎö

redis¼¯Èº²¿Êð·½°¸£¬redis¼¯Èº²¿Êðģʽ

chanong

|

ÕªÒª£º±¾ÎĵÄÄ¿µÄÊÇÔÚµ¥»úÉϹ¹½¨Ò»¸öRedis¼¯Èº£¬Í¨¹ýÔÚ²»Í¬µÄTCP¶Ë¿ÚÉÏÆô¶¯¶à¸öʵÀý£¬ÐγÉÒ»¸ö¼¯Èº£¬²¢¼Ç¼¹¹½¨¹ý³ÌÖÐÓöµ½µÄÏÝÚå¡£°²×°×¼±¸centos °æ±¾£º 6.7 redis °æ±¾£º 3.2.3 °²×°·½Ê½£º Ô´Âë°²×°·þÎñÆ÷£º 1 ʹÓÃ˵Ã÷ÕâÀïĬÈ**²×°µ¥¸öredis 1. Æô¶¯¶à¸öRedisʵÀýRedis°²×°ÔÚÏÂÃæ´´½¨Ò»¸öĿ¼´ØÕâÁù¸öÅäÖÃÎļþ½«ÓÃÓÚÆô¶¯Áù¸öʵÀý¡£ÉÔºó½«Ê¹ÓÃÕâÁù¸öʵÀýÀ´Ðγɼ¯Èº¡£

±¾ÎĵÄÄ¿µÄ

ÒªÔÚµ¥Ì¨¼ÆËã»úÉϹ¹½¨Redis ¼¯Èº£¬Çëͨ¹ý²»Í¬µÄTCP ¶Ë¿ÚÆô¶¯¶à¸öʵÀý£¬Ðγɼ¯Èº£¬²¢¼ÇϹ¹½¨¹ý³ÌÖÐÓöµ½µÄÈκÎÏÝÚå¡£

×¼±¸°²×°

Sentos°æ±¾£º6.7

Redis°æ±¾£º3.2.3

°²×°·½Ê½£ºÔ´Âë°²×°

·þÎñÆ÷£º1

²½

ÕâÀïĬÈ**²×°ÁËһ̨Redis¡£

1.Æô¶¯¶à¸öRedisʵÀý

ÔÚRedis°²×°Ä¿Â¼Ï´´½¨Ä¿Â¼´Ø£¬Ð´Èë7000.confµ½7005.conf 6¸öÅäÖÃÎļþ¡£ÕâÁù¸öÅäÖÃÎļþÓÃÓÚÆô¶¯Áù¸öʵÀý¡£ÉÔºó½«Ê¹ÓÃÕâÁù¸öʵÀýÀ´Ðγɼ¯Èº¡£

ÒÔ7000.confΪÀý£¬ÅäÖÃÎļþ±ØÐë°üº¬ÒÔÏÂÌõÄ¿£º

ÿ¸öÆô¶¯6 ¸öʵÀý

Æô¶¯³É¹¦ºóÎÒÃÇ¿´Ò»ÏÂÁ÷³Ì

ÖÁ´Ë£¬»úÆ÷ÉÏÒѾ­´´½¨ÁË6¸öʵÀý£¬ip=192.168.186.91£¬¶Ë¿ÚºÅÔÚport=7000µ½7005Ö®¼ä¡£

2.°²×°ºì±¦Ê¯

1£©yum°²×°RubyºÍÒÀÀµ°ü¡£

[root@itfirst redis_cluster]# yum -y install Ruby Ruby-devel Rubygems rpm-build

2£©Ê¹ÓÃgemÃüÁî°²×°Redis½Ó¿Ú

[root@itfirst redis_cluster]# gem install redis

ERROR: °²×°redis:ʱ³ö´í

redis ÐèÒªRuby °æ±¾=2.2.2¡£

ÕâÒ»²½³öÏÖÁËbug£¬¶ÈÄï¸æËßÎÒ£¬ÎÒµÄRuby°æ±¾Ì«µÍ£¬ÐèÒªÉý¼¶¡£

3£©Ruby°æ±¾Éý¼¶

°²×°RVM¡£ÎÒ²»ÖªµÀÕâÊÇʲô£¬µ«¸Ð¾õÏñÊÇRuby µÄ°ü¹ÜÀíÆ÷¡£

[root@itfirst redis_cluster]#curl -L get.rvm.io | bash -stead

% ×ܼÆ% ÒѽÓÊÕ% Xferd ƽ¾ùËÙ¶Èʱ¼äʱ¼äʱ¼äµ±Ç°

Dload ÉÏ´«Ê£Óà×ÜʹÓÃÂÊ

100 24090 100 24090 0 0 10919 0 0:00:02 0:00:02 --:--:-- 91242

https://ÏÂÔØgithub.com/rvm/rvm/archive/1.29.3.tar.gz

https://ÏÂÔØgithub.com/rvm/rvm/releases/download/1.29.3/1.29.3.tar.gz.asc

Ç©ÃûÓÉgpg: ÔÚ2017 Äê9 ÔÂ11 ÈÕÐÇÆÚÒ»04:59:21 CST ʹÓÃRSA ´´½¨£¬ÃÜÔ¿ºÅBF04FF17¡£

gpg: ÎÞ·¨Ñé֤ǩÃû£ºÈ±ÉÙ¹«Ô¿

¾¯¸æ£¬RVM 1.26.0 ÒýÈëÁËÇ©Ãû°æ±¾£¬²¢ÔÚ·¢ÏÖGPG Èí¼þʱ½øÐÐ×Ô¶¯Ç©Ãû¼ì²é¡£¼ÙÉèÄúÐÅÈÎMichal Papis£¬Çëµ¼Èëmpapis ¹«Ô¿£¨ÏÂÔØÇ©Ãû£©¡£

¡°/usr/local/rvm/archives/rvm-1.29.3.tgz¡±µÄGPG Ç©ÃûÑéÖ¤- ¡°https://github.com/rvm/rvm/releases/download/1.29.3/1.29.3.tar.gz.asc¡±Ê§°Ü'£¡³¢ÊÔ°²×°GPG v2£¬È»ºó»ñÈ¡publickey:

gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

Èç¹ûʧ°ÜÔò·µ»Ø£º

ÃüÁîcurl -sSL https://rvm.io/mpapis.asc | gpg2 --import -

ÃÜÔ¿¿ÉÒԺͣº¶Ô±È

https://rvm.io/mpapis.asc

https://keybase.io/mpapis

×¢Ò⣺ GPG °æ±¾2.1.17 ÓÐÒ»¸ö´íÎ󣬸ôíÎó»áÔÚ´ÓÔ¶³Ì·þÎñÆ÷¼ìË÷ÃÜԿʱµ¼Ö´íÎó¡£Çë½µ¼¶»òÉý¼¶µ½½Ïеİ汾£¨Èç¹ûÓУ©»òʹÓÃÉÏÊöµÚ¶þÖÖ·½·¨¡£

´Ë²Ù×÷²úÉúÒÔϽá¹û£º

gpg2 recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

È»ºóʹÓôËÃÜÔ¿ÏÂÔØ²¢Éý¼¶Ruby¡£

[root@itfirst redis_cluster]# gpg --keyserver hkp: //keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

gpg: ´Óhkp·þÎñÆ÷keys.gnupg.netÏÂÔØÃÜÔ¿¡°D39DC0E3¡±

gpg: /root/.gnupg/trustdb.gpg£ºÒѽ¨Á¢ÐÅÈÎÊý¾Ý¿â

gpg: ÃÜÔ¿D39DC0E3£ºÒѵ¼È빫Կ¡°Michal Papis£¨RVM Ç©Ãû£©¡±

gpg: δÕÒµ½¾ø¶Ô¿ÉÐŵÄÃÜÔ¿

gpg: ½ø³Ì×ÜÊý£º1

gpg: µ¼È룺1 (RSA: 1)

[root@itfirst redis_cluster]#curl -sSL https://get.rvm.io | bash -s stable

https://ÏÂÔØgithub.com/rvm/rvm/archive/1.29.3.tar.gz

https://ÏÂÔØgithub.com/rvm/rvm/releases/download/1.29.3/1.29.3.tar.gz.asc

Ç©ÃûÓÉgpg: ÔÚ2017 Äê9 ÔÂ11 ÈÕÐÇÆÚÒ»04:59:21 CST ʹÓÃRSA ´´½¨£¬ÃÜÔ¿ºÅBF04FF17¡£

gpg: À´×Ô¡°Michal Papis£¨RVM Ç©Ãû£©¡±µÄÍêÕûÇ©Ãû

gpg: Ò²³ÆÎª¡°Michal Papis¡±

gpg: ÓÖÃû¡°[´óСΪ5015 µÄjpeg ͼÏñ]¡±

gpg: ¾¯¸æ£º´ËÃÜÔ¿ÉÐδ¾­¹ý¿ÉÐÅÇ©ÃûµÄÑéÖ¤¡£

gpg: ûÓÐÖ¤¾Ý±íÃ÷´ËÇ©ÃûÊôÓÚÆäÉù³ÆµÄËùÓÐÕß¡£

Ö÷Ô¿³×Ö¸ÎÆ£º409B 6B17 96C2 7546 2A17 0311 3804 BB82 D39D C0E3

×ÓÃÜÔ¿Ö¸ÎÆ£º62C9 E5F4 DA30 0D94 AC36 166B E206 C29F BF04 FF17

GPG ÑéÖ¤ÁË¡°/usr/local/rvm/archives/rvm-1.29.3.tgz¡±

´´½¨×é¡°rvm¡±

½«RVM °²×°µ½/usr/local/rvm/

/usr/local/rvm/ÖеÄRVM °²×°¼´½«Íê³É£º

* Ê×ÏÈ£¬ËùÓн«Ê¹ÓÃrvm µÄÓû§¶¼±ØÐëÌí¼Óµ½¡°rvm¡±×éÖС£

È»ºó×¢Ïú- ÔٴεǼ£¬ÈκÎʹÓÃrvm µÄÈ˶¼½«Ê¹ÓÃ`umask u=rwx,g=rwx,o=rx` ½øÐвÙ×÷¡£

* Òª¿ªÊ¼Ê¹ÓÃRVM£¬ÄúÐèÒªÔËÐС°source /etc/profile.d/rvm.sh¡±¡£

´ò¿ªËùÓÐshell ´°¿Úºó£¬ÔÚ¼«ÉÙÊýÇé¿öÏ£¬Äú¿ÉÄÜÐèÒªÖØÐ´ò¿ªËùÓÐshell ´°¿Ú¡£

½ÓÏÂÀ´£¬»ñÈ¡»·¾³²¢Ê¹rvm ¿ÉÓá£

[root@itfirst ~]# Ô´/usr/local/rvm/scripts/rvm

ÏÔʾ¿ÉÓõÄRuby °æ±¾

[root@itfirst ~]# ÒÑÖªµÄRVM Áбí

#MRIºì±¦Ê¯

[ºì±¦Ê¯-]1.8.6[-p420]

[ruby-]1.8.7[-head] # Head °²È«ÐÔÒÑ·¢²¼

[ºì±¦Ê¯-]1.9.1[-p431]

[ºì±¦Ê¯-]1.9.2[-p330]

[ºì±¦Ê¯-]1.9.3[-p551]

[ºì±¦Ê¯-]2.0.0[-p648]

[ºì±¦Ê¯-]2.1[.10]

[ºì±¦Ê¯-]2.2[.7]

[ºì±¦Ê¯-]2.3[.4]

[ºì±¦Ê¯-]2.4[.1]

ºì±¦Ê¯Í·

# fork use: RVM install Ruby-head--url https://github.com/github/ruby.git --branch 2.2

#JRuby

jruby-1.6[.8]

jruby-1.7[.27]

jruby[-9.1.13.0]

Öì±ÈÍ·

#³±ÈÄáÎÚ˹

rbx-1[.4.3]

rbx-2.3[.0]

rbx-2.4[.1]

rbx-2[.5.8]

rbx-3[.84]

RBXÍ·

µ°°×ʯ

µ°°×ʯ

# ×îСRuby ʵÏÖ- ISO 30170:2012

mruby-1.0.0

mruby-1.1.0

mruby-1.2.0

ķ³±È-1[.3.0]

ķ³±È[-Í·]

# Ruby ÆóÒµ°æ

Àî-1.8.6

Àî[-1.8.7][-2012.02]

»ÆÓñ

»ÆÓñ

#´ÅÐü¸¡

Ö±Ïßµç»ú³µ[-Í·]

´ÅÐü¸¡-1.0.0

#Mac OS X Snow Leopard »ò¸ü¸ß°æ±¾

Âó¿Ë³±È-0.10

Âó¿Ë³±È-0.11

Âó¿Ë³±È[-0.12]

Âó¿ËÀ³Î¬¡¤ÄÎÌØÀû

Âó¿Ë¬ά½Ç

#Ìúºì±¦Ê¯

Ìúºì±¦Ê¯[-1.1.3]

Ìúºì±¦Ê¯Í·

¿ÉÒÔ¿´µ½×îа汾ÊÇ2.4.1¡£±¾Îݲװ2.3.0¡£

ÖÁ´Ë£¬Ruby°æ±¾ÒѾ­Éý¼¶Íê±Ï¡£

[root@itfirst ~]# RVM°²×°2.3.0

ËÑË÷¶þ½øÖÆRuby ¿ÉÄܷdz£ºÄʱ¡£

ÕÒµ½Ô¶³ÌÎļþhttps://rvm_io.global.ssl.fastly.net/binaries/centos/6/x86_64/ruby-2.3.0.tar.bz2

¼ì²éCentos ÒªÇó¡£

Centos °²×°ÒªÇó¡£

°²×°ËùÐèµÄÈí¼þ°ü£º autoconf¡¢automake¡¢bison¡¢libffi-devel¡¢libtool¡¢readline-devel¡¢sqlite-devel¡¢libyaml-devel.

ÒªÇó°²×°³É¹¦¡£

Ruby-2.3.0 - #configure

Ruby-2.3.0-#download

% ×ܼÆ% ÒѽÓÊÕ% Xferd ƽ¾ùËÙ¶Èʱ¼äʱ¼äʱ¼äµ±Ç°

Dload ÉÏ´«Ê£Óà×ÜʹÓÃÂÊ

100 21.9M 100 21.9M 0 0 266k 0 0:01:24 0:01:24 --:--:-- 278k

ÏÂÔØµÄµµ°¸Ã»ÓÐУÑéºÍ¡£ÔÚÓû§ÉèÖÃÖмǼУÑéºÍ¡£

Ruby-2.3.0 - #validate ´æµµ

Ruby-2.3.0 - #extract

Ruby-2.3.0 - #ÑéÖ¤¶þ½øÖÆÎļþ

Ruby-2.3.0-#setup

Ruby-2.3.0 - #gemset ´´½¨ÁË/usr/local/rvm/gems/ruby-2.3.0@global

Ruby-2.3.0 - #µ¼Èëgemset /usr/local/rvm/gemsets/global.gems....

Ruby-2.3.0 - #Éú³ÉÈ«¾Ö°ü×°Æ÷.

Ruby-2.3.0 - #gemset ´´½¨ÁË/usr/local/rvm/gems/ruby-2.3.0

Ruby-2.3.0 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems ÆÀ¹ÀΪ¿Õgem Áбí

Ruby-2.3.0 - #Éú³ÉĬÈ**ü×°Æ÷.

4£©°²×°gem redis½Ó¿Ú

[root@itfirst ~]# RVMʹÓÃ2.3.0

ʹÓÃ/usr/local/rvm/gems/ruby-2.3.0

[root@itfirst ~]# RVM ɾ³ý1.8.7

Ruby-1.8.7-head - #ÒѾ­Ïûʧ

ʹÓÃ/usr/local/rvm/gems/ruby-2.3.0

[root@itfirst ~]# Ruby --version

Ruby 2.3.0p0£¨2015-12-25 ÐÞ¶©°æ53290£©[x86_64-linux]

[root@itfirst ~]# gem install redis

ÕýÔÚ»ñÈ¡£º redis-4.0.1.gem (100%)

redis-4.0.1°²×°³É¹¦

½âÎöredis-4.0.1Îĵµ

°²×°redis-4.0.1µÄriÎĵµ

0ÃëºóRedisÎĵµ°²×°Íê³É

°²×°ÁË1 ¸ö±¦Ê¯

5£©°²×°Rubygems

# yum install -y Rubygems

ÖÁ´Ë£¬RubyÔËÐÐËùÐèµÄ»·¾³ºÍredis-trib.rbÒѾ­°²×°Íê±Ï¡£

3.Redis¼¯Èº´î½¨

Ò»µ©ÄúÓµÓÐÁËRuby Ö´Ðл·¾³£¬Äú¾Í¿ÉÒÔ¿ªÊ¼Ê¹ÓÃÇ°ÃæµÄÁù¸öʵÀýÀ´¹¹½¨¼¯Èº¡£

redis-trib.rb ´´½¨--replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 192.168.186 .91:7004 192.168.186.91:7005

ÓÐ3¸öÖ÷È˺Í3¸öÅ«Á¥¡£Çë×ñÑ­ÒÔÏÂÁù¸öʾÀý¡£¸ñʽΪip: ¶Ë¿Ú¡£

¡¾ÕâÀïÓÐÒ»¸ö¶´¡¿

µÚÒ»¸ö¿Ó

[root@itfirst src]# redis-trib.rb create --replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 1 92.168.186.91:7004 192.168.186.91:7005

-bash: redis-trib.rb: ÃüÁîδÕÒµ½

[root@itfirst src]# cp redis-trib.rb /usr/local/bin

ÐèÒª½«redis-trib.rb¸´ÖƵ½/usr/local/binĿ¼Ï¡£

µÚ¶þ¸ö¿Ó

[root@itfirst bin]# redis-trib.rb create --replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 192 .168.186.91:7004 192.168.186.91:7005

´´½¨¼¯Èº

[ERR] ½Úµã192.168.186.91:7000 ²»Îª¿Õ¡£¸Ã½Úµã¿ÉÄÜÒѾ­Á˽âÆäËû½Úµã£¨Ê¹ÓÃCLUSTERNODES ¼ì²é£©£¬»òÕßÊý¾Ý¿â0 °üº¬Ä³Ð©ÃÜÔ¿¡£

ÅÜÍêµÚÒ»¸ö¶´£¬¼ÌÐøÅÜ£¬·¢ÏÖÁ˵ڶþ¸ö¶´£¬ÐҺöÈÄïÔÚ£¬µ«ÍøÉÏÓв»Í¬µÄ˵·¨£¨Ö÷ÒªÊDz©¿Í¡¶¼«¿Íon֮·¡·£©¡£±íʾRedisÊý¾Ý¿âÉÐδÇå³ý¡£

[root@itfirst src]# redis-cli -h 192.168.186.91 -p 7001

192.168.186.91:7001ÉÁ´æÊý¾Ý¿â

ÖªµÀÁË

192.168.186.91:7001 Í£Ö¹Ëü¡£

[root@itfirst src]# redis-cli -h 192.168.186.91 -p 7002

192.168.186.91:7002 ÉÁ´æÊý¾Ý¿â

ÖªµÀÁË

192.168.186.91:7002 Í£Ö¹°É¡£

[root@itfirst src]# redis-cli -h 192.168.186.91 -p 7003

192.168.186.91:7003 FlashÊý¾Ý¿â

ÖªµÀÁË

192.168.186.91:7003 Í£Ö¹°É¡£

[root@itfirst src]# redis-cli -h 192.168.186.91 -p 7004

192.168.186.91:7004ÉÁ´æÊý¾Ý¿â

ÖªµÀÁË

192.168.186.91:7004 Í£Ö¹°É¡£

[root@itfirst src]# redis-cli -h 192.168.186.91 -p 7005

192.168.186.91:7005ÉÁ´æÊý¾Ý¿â

ÖªµÀÁË

192.168.186.91:7005 Í£Ö¹°É¡£

[root@itfirst src]# redis-trib.rb create --replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 1 92.168.186.91:7004 192.168.186.91:7005

´´½¨¼¯Èº

ÔÚ6 ¸ö½ÚµãÉÏÖ´ÐйþÏ£²Û·ÖÅä.

ÈýÖ÷Óãº

192.168.186.91:7000

192.168.186.91:7001

192.168.186.91:7002

½«¸±±¾192.168.186.91:7003 Ìí¼Óµ½192.168.186.91:7000

½«¸±±¾192.168.186.91:7004 Ìí¼Óµ½192.168.186.91:7001

½«¸±±¾192.168.186.91:7005 Ìí¼Óµ½192.168.186.91:7002

M: 61b2b608177374fd0382c872f996a2c25f62daac 192.168.186.91:7000

²å²Û£º0-5460,9189£¨5462¸ö²å²Û£©Ö÷¿Ø

M: 50e678c98c31baa4ece1cba096cc34b4545456f3 192.168.186.91:7001

²å²Û£º5461-10922£¨5462¸ö²å²Û£©Ö÷

M: b8dc855a92d1c9a6e358380286a757011c40601d 192.168.186.91:7002

²å²Û£º9189¡¢10923-16383£¨5462 ¸ö²å²Û£© Ö÷Õ¾

S: 42392d8b4665500b3229b5c5b9dcebed311c9cdf 192.168.186.91:7003

¿Ë¡61b2b608177374fd0382c872f996a2c25f62daac

S: 4e8cd9bae1dc0ffa63a3b8315e3f92b0490e65f8 192.168.186.91:7004

¿Ë¡50e678c98c31baa4ece1cba096cc34b4545456f3

S: 3344981c3290c39b0d9f427842398c17de835293 192.168.186.91:7005

ÖØ¸´b8dc855a92d1c9a6e358380286a757011c40601d

ÎÒ¿ÉÒÔÉèÖÃÒÔÉÏÅäÖÃÂ𣿣¨ÇëÊäÈëyes½ÓÊÜ£©: ÊÇ

/usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis/client.rb:119:in `call': ERR ²å²Û9189 ÒÑæ£¨Redis:CommandError£©

À´×Ô/usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:2764: Öеġ°×èÈû·½·¨_ȱʧ¡±

/usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:45:in À´×Ô¡°Í¬²½¿é¡±

À´×Ô/usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214: ÖеÄ`mon_synchronize'

/usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:45:in À´×Ô¡°Í¬²½¡±

À´×Ô/usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:2763: ÖеÄ`method_missing'

À´×Ô/usr/local/bin/redis-trib.rb:212: ÖеÄ`flush_node_config'

À´×Ô/usr/local/bi

n/redis-trib.rb:776:in `block in flush_nodes_config' from /usr/local/bin/redis-trib.rb:775:in `each' from /usr/local/bin/redis-trib.rb:775:in `flush_nodes_config' from /usr/local/bin/redis-trib.rb:1296:in `create_cluster_cmd' from /usr/local/bin/redis-trib.rb:1696:in `' µÚÈý¿Ó [root@itfirst src]# redis-trib.rb create --replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 192.168.186.91:7004 192.168.186.91:7005 >>> Creating cluster >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 Adding replica 192.168.186.91:7003 to 192.168.186.91:7000 Adding replica 192.168.186.91:7004 to 192.168.186.91:7001 Adding replica 192.168.186.91:7005 to 192.168.186.91:7002 M: 61b2b608177374fd0382c872f996a2c25f62daac 192.168.186.91:7000 slots:0-5460,9189 (5462 slots) master M: 50e678c98c31baa4ece1cba096cc34b4545456f3 192.168.186.91:7001 slots:5461-10922 (5462 slots) master M: b8dc855a92d1c9a6e358380286a757011c40601d 192.168.186.91:7002 slots:9189,10923-16383 (5462 slots) master S: 42392d8b4665500b3229b5c5b9dcebed311c9cdf 192.168.186.91:7003 replicates 61b2b608177374fd0382c872f996a2c25f62daac S: 4e8cd9bae1dc0ffa63a3b8315e3f92b0490e65f8 192.168.186.91:7004 replicates 50e678c98c31baa4ece1cba096cc34b4545456f3 S: 3344981c3290c39b0d9f427842398c17de835293 192.168.186.91:7005 replicates b8dc855a92d1c9a6e358380286a757011c40601d Can I set the above configuration (type 'yes' to accept): yes /usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis/client.rb:119:in `call': ERR Slot 9189 is already busy (Redis::CommandError) from /usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:2764:in `block in method_missing' from /usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:45:in `block in synchronize' from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize' from /usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:45:in `synchronize' from /usr/local/rvm/gems/ruby-2.3.0/gems/redis-4.0.1/lib/redis.rb:2763:in `method_missing' from /usr/local/bin/redis-trib.rb:212:in `flush_node_config' from /usr/local/bin/redis-trib.rb:776:in `block in flush_nodes_config' from /usr/local/bin/redis-trib.rb:775:in `each' from /usr/local/bin/redis-trib.rb:775:in `flush_nodes_config' from /usr/local/bin/redis-trib.rb:1296:in `create_cluster_cmd' from /usr/local/bin/redis-trib.rb:1696:in `' »¹ÊǶÈÄï¿¿Æ×£¬ÔÚ¡¶redis ¿ç»úÆ÷¼¯ÈºÆô¶¯³ö´í¡·²©¿ÍÖÐÕÒµ½Á˴𰸡£ ÕâÊÇÓÉÓÚÖ®¼ä´´½¨¼¯ÈºÃ»Óгɹ¦,ÐèÒª½«nodes.confºÍdirÀïÃæµÄÎļþÈ«²¿É¾³ý¡£ [root@itfirst 7000]# find / -name \"nodes-7000.conf\" /usr/local/redis-3.2.3/src/nodes-7000.conf [root@itfirst 7000]# cd ../../ [root@itfirst src]# rm -rf nodes-700* È»ºóÖØÆôredis·þÎñ¡£ [root@itfirst src]# redis-trib.rb create --replicas 1 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 192.168.186.91:7003 192.168.186.91:7004 192.168.186.91:7005 >>> Creating cluster >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 192.168.186.91:7000 192.168.186.91:7001 192.168.186.91:7002 Adding replica 192.168.186.91:7003 to 192.168.186.91:7000 Adding replica 192.168.186.91:7004 to 192.168.186.91:7001 Adding replica 192.168.186.91:7005 to 192.168.186.91:7002 M: 319da27d8668a15d2d2d02afe433247694343459 192.168.186.91:7000 slots:0-5460 (5461 slots) master M: 3da756265e301ac0210760f13e990473f87a3017 192.168.186.91:7001 slots:5461-10922 (5462 slots) master M: 6f336da48c892d8e0c541a864765978ebfbca6d5 192.168.186.91:7002 slots:10923-16383 (5461 slots) master S: ff4cf9d8a141d85c478b9af0358c93bca342c236 192.168.186.91:7003 replicates 319da27d8668a15d2d2d02afe433247694343459 S: 43c2e0d7799e84b449803a68d557c3431e9e047e 192.168.186.91:7004 replicates 3da756265e301ac0210760f13e990473f87a3017 S: 3f174fae106cb6cf7e7f21ed844895ed7c18f793 192.168.186.91:7005 replicates 6f336da48c892d8e0c541a864765978ebfbca6d5 Can I set the above configuration (type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join.... >>> Performing Cluster Check (using node 192.168.186.91:7000) M: 319da27d8668a15d2d2d02afe433247694343459 192.168.186.91:7000 slots:0-5460 (5461 slots) master M: 3da756265e301ac0210760f13e990473f87a3017 192.168.186.91:7001 slots:5461-10922 (5462 slots) master M: 6f336da48c892d8e0c541a864765978ebfbca6d5 192.168.186.91:7002 slots:10923-16383 (5461 slots) master M: ff4cf9d8a141d85c478b9af0358c93bca342c236 192.168.186.91:7003 slots: (0 slots) master replicates 319da27d8668a15d2d2d02afe433247694343459 M: 43c2e0d7799e84b449803a68d557c3431e9e047e 192.168.186.91:7004 slots: (0 slots) master replicates 3da756265e301ac0210760f13e990473f87a3017 M: 3f174fae106cb6cf7e7f21ed844895ed7c18f793 192.168.186.91:7005 slots: (0 slots) master replicates 6f336da48c892d8e0c541a864765978ebfbca6d5 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. 4¡¢ÑéÖ¤¼¯Èº×´Ì¬ µÇ¼¼¯Èº¿Í»§¶Ë£¬-c±êʶÒÔ¼¯Èº·½Ê½µÇ¼ [root@itfirst src]# redis-cli -h 192.168.186.91 -c -p 7002 ²é¿´¼¯Èº×´Ì¬ 192.168.186.91:7002> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:6 cluster_my_epoch:3 cluster_stats_messages_sent:124174 cluster_stats_messages_received:124174 192.168.186.91:7002> cluster nodes 319da27d8668a15d2d2d02afe433247694343459 192.168.186.91:7000 master - 0 1519465974307 1 connected 0-5460 3f174fae106cb6cf7e7f21ed844895ed7c18f793 192.168.186.91:7005 slave6f336da48c892d8e0c541a864765978ebfbca6d5 0 1519465971278 6 connected 6f336da48c892d8e0c541a864765978ebfbca6d5 192.168.186.91:7002 myself,master - 0 0 3 connected 10923-16383 3da756265e301ac0210760f13e990473f87a3017 192.168.186.91:7001 master - 0 1519465972288 2 connected 5461-10922 43c2e0d7799e84b449803a68d557c3431e9e047e 192.168.186.91:7004 slave3da756265e301ac0210760f13e990473f87a3017 0 1519465973298 5 connected ff4cf9d8a141d85c478b9af0358c93bca342c236 192.168.186.91:7003 slave319da27d8668a15d2d2d02afe433247694343459 0 1519465969258 4 connected

Êг¡·ÖÎö