成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Redis集群搭建全記錄

Redis集群搭建全記錄

熱門標簽:北京語音電銷機器人價格 邯鄲外呼調(diào)研線路 武漢呼叫中心外呼系統(tǒng)線路商 買了外呼系統(tǒng)不想用了怎么辦 電話機器人電話卡封號怎么辦 真人語音電銷機器人系統(tǒng) 開封百應電銷機器人聯(lián)系方式 樂昌電話機器人 浦東上海400開頭的電話申請

Redis集群是一個提供在多個Redis節(jié)點間共享數(shù)據(jù)的程序集。

  Redis集群中不支持處理多個keys的命令。

  Redis集群通過分區(qū)來提供一定程度的可用性。在某個節(jié)點宕機或者不可用的時候可以繼續(xù)處理命令。

Redis集群數(shù)據(jù)分片

  在Redis集群中,使用數(shù)據(jù)分片(sharding)而不是一致性hash(consistency hashing)來實現(xiàn),一個Redis集群包含16384個哈希槽(hash slot),數(shù)據(jù)庫中的每個鍵都存在這些哈希槽中的某一個,通過CRC16校驗后對16384取模來決定。

  加入說現(xiàn)在集群中有三個節(jié)點,那么

 ?、俟?jié)點A包含0到5500號哈希槽。

 ?、诠?jié)點B包含5501到11000號哈希槽。

 ?、酃?jié)點C包含11001到16384號哈希槽。

  然后如果我們要增加一個節(jié)點的時候,會從ABC三個節(jié)點分別得到一部分槽到D上。如果我們移除一個節(jié)點的時候,就會把移除的節(jié)點的分隔槽移到剩下的槽上面。

Redis主從復制模型

  為了實現(xiàn)Redis的集群的高可用性。Redis提供了一個主從復制模型。每個節(jié)點都會有N-1個復制品。

  如果在創(chuàng)建集群的時候,我們?yōu)槊總€節(jié)點添加了一個從節(jié)點,這時候,如果其中的某個主節(jié)點掛掉了,便會把它的從節(jié)點做為新的主節(jié)點,繼續(xù)提供服務。但是如果主節(jié)點和從節(jié)點都掛掉了,那就不可以繼續(xù)使用了。

Redis集群搭建

  Redis集群由多個云新在集群模式下的Redis實例組成。實例的集群模式需要通過配置來開啟。

  下面是一個包含了最少選項的集群配置文件實例:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
pidfile /var/run/redis_xxxx.pid
dir /usr/local/redis-cluster/xxxx

port指定了節(jié)點的端口號

cluster-enabled yes選項用于開啟實例的集群模式

cluster-config-file nodes.conf設置了保存節(jié)點的配置文件路徑,這個文件無須認為修改,是在集群啟動的時候創(chuàng)建。

cluster-node-timeout 5000:設置了方式失敗的等待時間。即5秒還訪問不了就認為這個節(jié)點不可用。

appendonly yes:用于開啟aof持久化

 pidfile /var/run/redis_xxxx.pid設置pid文件的位置,其中xxxx為端口號

dir /usr/local/redis-cluster/xxxx設置工作目錄,其中xxxx為端口號。

此時目錄中的文件是這樣的

[root@localhost 10:49 /usr/local/redis-cluster]# ll 7000 7001 7002 7003 7004 7005
7000:
總用量 7080
-rw-r--r--. 1 root root  57787 9月 10 10:44 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 09:50 redis-server

7001:
總用量 7080
-rw-r--r--. 1 root root  57787 9月 10 10:46 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server

7002:
總用量 7080
-rw-r--r--. 1 root root  57787 9月 10 10:46 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server

7003:
總用量 7080
-rw-r--r--. 1 root root  57787 9月 10 10:47 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server

7004:
總用量 7080
-rw-r--r--. 1 root root  57787 9月 10 10:48 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server

7005:
總用量 7080
-rw-r--r--. 1 root root  57787 9月 10 10:48 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server
[root@localhost 10:49 /usr/local/redis-cluster]#

下面啟動這六個節(jié)點

[root@localhost 10:51 /usr/local/redis-cluster]# ./7000/redis-server ./7000/redis.conf
3547:C 10 Sep 10:51:58.519 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3547:C 10 Sep 10:51:58.519 # Redis version=4.0.1, bits=32, commit=00000000, modified=0, pid=3547, just started
3547:C 10 Sep 10:51:58.519 # Configuration loaded
[root@localhost 10:51 /usr/local/redis-cluster]# ./7001/redis-server ./7001/redis.conf
3552:C 10 Sep 10:52:05.549 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3552:C 10 Sep 10:52:05.550 # Redis version=4.0.1, bits=32, commit=00000000, modified=0, pid=3552, just started
3552:C 10 Sep 10:52:05.550 # Configuration loaded
[root@localhost 10:52 /usr/local/redis-cluster]# ./7002/redis-server ./7002/redis.conf
3557:C 10 Sep 10:52:13.098 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3557:C 10 Sep 10:52:13.098 # Redis version=4.0.1, bits=32, commit=00000000, modified=0, pid=3557, just started
3557:C 10 Sep 10:52:13.098 # Configuration loaded
[root@localhost 10:52 /usr/local/redis-cluster]# ./7003/redis-server ./7003/redis.conf
3563:C 10 Sep 10:52:18.986 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3563:C 10 Sep 10:52:18.986 # Redis version=4.0.1, bits=32, commit=00000000, modified=0, pid=3563, just started
3563:C 10 Sep 10:52:18.986 # Configuration loaded
[root@localhost 10:52 /usr/local/redis-cluster]# ./7004/redis-server ./7004/redis.conf
3568:C 10 Sep 10:52:23.709 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3568:C 10 Sep 10:52:23.710 # Redis version=4.0.1, bits=32, commit=00000000, modified=0, pid=3568, just started
3568:C 10 Sep 10:52:23.710 # Configuration loaded
[root@localhost 10:52 /usr/local/redis-cluster]# ./7005/redis-server ./7005/redis.conf
3573:C 10 Sep 10:52:27.146 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3573:C 10 Sep 10:52:27.147 # Redis version=4.0.1, bits=32, commit=00000000, modified=0, pid=3573, just started
3573:C 10 Sep 10:52:27.147 # Configuration loaded
[root@localhost 10:52 /usr/local/redis-cluster]#

查看啟動后的進程:

[root@localhost 10:52 /usr/local/redis-cluster]# ps aux|grep redis
root   3548 0.2 0.2 41964 2288 ?    Ssl 10:51  0:00 ./7000/redis-server 127.0.0.1:7000 [cluster]
root   3553 0.1 0.2 41964 2288 ?    Ssl 10:52  0:00 ./7001/redis-server 127.0.0.1:7001 [cluster]
root   3558 0.2 0.2 41964 2288 ?    Ssl 10:52  0:00 ./7002/redis-server 127.0.0.1:7002 [cluster]
root   3564 0.1 0.2 41964 2292 ?    Ssl 10:52  0:00 ./7003/redis-server 127.0.0.1:7003 [cluster]
root   3569 0.2 0.2 41964 2292 ?    Ssl 10:52  0:00 ./7004/redis-server 127.0.0.1:7004 [cluster]
root   3574 0.1 0.2 41964 2288 ?    Ssl 10:52  0:00 ./7005/redis-server 127.0.0.1:7005 [cluster]
root   3580 0.0 0.0  6048  784 pts/2  S+  10:52  0:00 grep redis
[root@localhost 10:52 /usr/local/redis-cluster]#

再次查看文件目錄:

[root@localhost 11:01 /usr/local/redis-cluster]# ll 7000 7001 7002 7003 7004 7005
7000:
總用量 7084
-rw-r--r--. 1 root root    0 9月 10 10:51 appendonly.aof
-rw-r--r--. 1 root root   114 9月 10 10:51 nodes-7000.conf
-rw-r--r--. 1 root root  57787 9月 10 10:44 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 09:50 redis-server

7001:
總用量 7084
-rw-r--r--. 1 root root    0 9月 10 10:52 appendonly.aof
-rw-r--r--. 1 root root   114 9月 10 10:52 nodes-7001.conf
-rw-r--r--. 1 root root  57787 9月 10 10:46 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server

7002:
總用量 7084
-rw-r--r--. 1 root root    0 9月 10 10:52 appendonly.aof
-rw-r--r--. 1 root root   114 9月 10 10:52 nodes-7002.conf
-rw-r--r--. 1 root root  57787 9月 10 10:46 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server

7003:
總用量 7084
-rw-r--r--. 1 root root    0 9月 10 10:52 appendonly.aof
-rw-r--r--. 1 root root   114 9月 10 10:52 nodes-7003.conf
-rw-r--r--. 1 root root  57787 9月 10 10:47 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server

7004:
總用量 7084
-rw-r--r--. 1 root root    0 9月 10 10:52 appendonly.aof
-rw-r--r--. 1 root root   114 9月 10 10:52 nodes-7004.conf
-rw-r--r--. 1 root root  57787 9月 10 10:48 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server

7005:
總用量 7084
-rw-r--r--. 1 root root    0 9月 10 10:52 appendonly.aof
-rw-r--r--. 1 root root   114 9月 10 10:52 nodes-7005.conf
-rw-r--r--. 1 root root  57787 9月 10 10:48 redis.conf
-rwxr-xr-x. 1 root root 7185872 9月 10 10:04 redis-server
[root@localhost 11:01 /usr/local/redis-cluster]#

可以看到生成了aof和nodes文件,保存的時候還會有dump文件生成。

在看看pid

[root@localhost 11:03 /usr/local/redis-cluster]# ll /var/run/redis*
-rw-r--r--. 1 root root 5 9月 10 10:51 /var/run/redis_7000.pid
-rw-r--r--. 1 root root 5 9月 10 10:52 /var/run/redis_7001.pid
-rw-r--r--. 1 root root 5 9月 10 10:52 /var/run/redis_7002.pid
-rw-r--r--. 1 root root 5 9月 10 10:52 /var/run/redis_7003.pid
-rw-r--r--. 1 root root 5 9月 10 10:52 /var/run/redis_7004.pid
-rw-r--r--. 1 root root 5 9月 10 10:52 /var/run/redis_7005.pid
[root@localhost 11:03 /usr/local/redis-cluster]#

接下來,我們就需要使用redis-trib工具和這六個節(jié)點來創(chuàng)建集群了。

redis-trib位于redis源碼的src目錄下。

我們復制一份到redis-cluster目錄下。

[root@localhost 11:03 /usr/local/redis-cluster]# ll ../redis/src/redis-trib*
-rwxrwxr-x. 1 root root 60843 7月 24 22:58 ../redis/src/redis-trib.rb
[root@localhost 11:04 /usr/local/redis-cluster]# cp ../redis/src/redis-trib.rb ./
[root@localhost 11:05 /usr/local/redis-cluster]# ll
總用量 84
drwxr-xr-x. 2 root root 4096 9月 10 10:51 7000
drwxr-xr-x. 2 root root 4096 9月 10 10:52 7001
drwxr-xr-x. 2 root root 4096 9月 10 10:52 7002
drwxr-xr-x. 2 root root 4096 9月 10 10:52 7003
drwxr-xr-x. 2 root root 4096 9月 10 10:52 7004
drwxr-xr-x. 2 root root 4096 9月 10 10:52 7005
-rwxr-xr-x. 1 root root 60843 9月 10 11:05 redis-trib.rb
[root@localhost 11:05 /usr/local/redis-cluster]#

開始啟動集群:

[root@localhost 11:13 /usr/local/redis-cluster]# ./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
/usr/bin/env: ruby: 沒有那個文件或目錄
[root@localhost 11:15 /usr/local/redis-cluster]#

下面是本人失敗的安裝版本,后面也有成功的版本。

因為是ruby的程序,所以我們需要安裝ruby,

yum -y install  ruby

繼續(xù)啟動集群:

[root@localhost 11:21 /usr/local/redis-cluster]# ./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
    from ./redis-trib.rb:24
[root@localhost 11:22 /usr/local/redis-cluster]#

還是報錯了,說需要rubygems,我們繼續(xù)安裝:

yum -y install rubygems

繼續(xù)啟動集群:

[root@localhost 11:24 /usr/local/redis-cluster]# ./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)
    from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from ./redis-trib.rb:25
[root@localhost 11:24 /usr/local/redis-cluster]#

依然還是報錯了...,我們需要安裝更高版本的ruby。

 所以,我決定,先卸載掉1.8的ruby。

yum -y remove ruby

然后重新安裝

wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.gz
tar xzvf ruby-2.4.1.tar.gz
cd ruby-2.4.1
./configure
make
make install

然后查看ruby的版本:

[root@localhost 12:47 ~]# ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [i686-linux]
[root@localhost 12:47 ~]#

最后,為了運行redis-trib我們需要安裝redis gem。

如果出現(xiàn)下面的錯誤

[root@localhost 13:01 /usr/local/redis-cluster]# gem install redis
ERROR: Loading command: install (LoadError)
    cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
  undefined method `invoke_with_build_args' for nil:NilClass

我們繼續(xù)開啟集群:依然還是報錯,幾經(jīng)折騰,還是沒解決掉

最好,找到了下面這種方法。

成功版本

通過rvm這個ruby的管理工具來安裝ruby。

首先安裝rvm,如果下面的命令提示找不到curl,可以通過yum install -y crul來安裝crul。

[root@localhost 19:45 ~]# curl -L get.rvm.io | bash -s stable
 % Total  % Received % Xferd Average Speed  Time  Time   Time Current
                 Dload Upload  Total  Spent  Left Speed
100 24090 100 24090  0   0 11517   0 0:00:02 0:00:02 --:--:-- 48276
Downloading https://github.com/rvm/rvm/archive/1.29.3.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.29.3/1.29.3.tar.gz.asc
gpg: 于 2017年09月11日 星期一 05時59分21秒 JST 創(chuàng)建的簽名,使用 RSA,鑰匙號 BF04FF17
gpg: 無法檢查簽名:No public key
Warning, RVM 1.26.0 introduces signed releases and automated check of signatures when GPG software found. Assuming you trust Michal Papis import the mpapis public key (downloading the signatures).

GPG signature verification failed for '/usr/local/rvm/archives/rvm-1.29.3.tgz' - 'https://github.com/rvm/rvm/releases/download/1.29.3/1.29.3.tar.gz.asc'! Try to install GPG v2 and then fetch the public key:

  gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

or if it fails:

  command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -

the key can be compared with:

  https://rvm.io/mpapis.asc
  https://keybase.io/mpapis

NOTE: GPG version 2.1.17 have a bug which cause failures during fetching keys from remote server. Please downgrade or upgrade to newer version (if available) or use the second method described above.

[root@localhost 19:45 ~]#

發(fā)現(xiàn)失敗了,我們按照提示進行操作。

[root@localhost 19:45 ~]# curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
gpg: 鑰匙環(huán)‘/root/.gnupg/secring.gpg'已建立
gpg: /root/.gnupg/trustdb.gpg:建立了信任度數(shù)據(jù)庫
gpg: 密鑰 D39DC0E3:公鑰“Michal Papis (RVM signing) mpapis@gmail.com>”已導入
gpg: 合計被處理的數(shù)量:1
gpg:      已導入:1 (RSA: 1)
gpg: 沒有找到任何絕對信任的密鑰
[root@localhost 19:45 ~]# curl -L get.rvm.io | bash -s stable
 % Total  % Received % Xferd Average Speed  Time  Time   Time Current
                 Dload Upload  Total  Spent  Left Speed
100 24090 100 24090  0   0  3763   0 0:00:06 0:00:06 --:--:-- 3763
Downloading https://github.com/rvm/rvm/archive/1.29.3.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.29.3/1.29.3.tar.gz.asc
gpg: 于 2017年09月11日 星期一 05時59分21秒 JST 創(chuàng)建的簽名,使用 RSA,鑰匙號 BF04FF17
gpg: 完好的簽名,來自于“Michal Papis (RVM signing) mpapis@gmail.com>”
gpg:        亦即“Michal Papis michal.papis@toptal.com>”
gpg:        亦即“[jpeg image of size 5015]”
gpg: 警告:這把密鑰未經(jīng)受信任的簽名認證!
gpg:    沒有證據(jù)表明這個簽名屬于它所聲稱的持有者。
主鑰指紋: 409B 6B17 96C2 7546 2A17 0311 3804 BB82 D39D C0E3
子鑰指紋: 62C9 E5F4 DA30 0D94 AC36 166B E206 C29F BF04 FF17
GPG verified '/usr/local/rvm/archives/rvm-1.29.3.tgz'
Creating group 'rvm'

Installing RVM to /usr/local/rvm/
Installation of RVM in /usr/local/rvm/ is almost complete:

 * First you need to add all users that will be using rvm to 'rvm' group,
  and logout - login again, anyone using rvm will be operating with `umask u=rwx,g=rwx,o=rx`.

 * To start using RVM you need to run `source /etc/profile.d/rvm.sh`
  in all your open shell windows, in rare cases you need to reopen all shell windows.
[root@localhost 19:46 ~]

發(fā)現(xiàn)rvm已經(jīng)安裝成功了,為了讓配置立即生效,我們需要用source命令導入rvm的配置文件。

先查看下配置文件的路徑,然后導入。

[root@localhost 19:46 ~]# find / -name rvm.sh
/etc/profile.d/rvm.sh
[root@localhost 19:49 ~]# source /etc/profile.d/rvm.sh

接下來就可以安裝高版本的ruby了,建議安裝2.2.3版本,不然的話,等下gen install redis的時候,可能會報下面的錯誤:

[root@localhost 19:59 ~]# gem install redis
Fetching: redis-4.0.0.gem (100%)
ERROR: Error installing redis:
    redis requires Ruby version >= 2.2.2.

廢話少說,接下來安裝2.2.3版本的ruby

[root@localhost 20:16 ~]# rvm install 2.3.3
Searching for binary rubies, this might take some time.
No binary rubies available for: centos/6/i386/ruby-2.3.3.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for centos.
Requirements installation successful.
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-2.3.3, this may take a while depending on your cpu(s)...
ruby-2.3.3 - #downloading ruby-2.3.3, this may take a while depending on your connection...
 % Total  % Received % Xferd Average Speed  Time  Time   Time Current
                 Dload Upload  Total  Spent  Left Speed
100 13.7M 100 13.7M  0   0 1285k   0 0:00:10 0:00:10 --:--:-- 1394k
ruby-2.3.3 - #extracting ruby-2.3.3 to /usr/local/rvm/src/ruby-2.3.3....
ruby-2.3.3 - #applying patch /usr/local/rvm/patches/ruby/ruby_2_3_gcc7.patch.
ruby-2.3.3 - #applying patch /usr/local/rvm/patches/ruby/2.3.3/random_c_using_NR_prefix.patch.
ruby-2.3.3 - #configuring..........................................................
ruby-2.3.3 - #post-configuration..
ruby-2.3.3 - #compiling....................................................................................-
ruby-2.3.3 - #installing...........................
ruby-2.3.3 - #making binaries executable..
ruby-2.3.3 - #downloading rubygems-2.6.13
ruby-2.3.3 - #extracting rubygems-2.6.13.....
ruby-2.3.3 - #removing old rubygems.........
ruby-2.3.3 - #installing rubygems-2.6.13..........................
ruby-2.3.3 - #gemset created /usr/local/rvm/gems/ruby-2.3.3@global
ruby-2.3.3 - #importing gemset /usr/local/rvm/gemsets/global.gems..........................................|
ruby-2.3.3 - #generating global wrappers........
ruby-2.3.3 - #gemset created /usr/local/rvm/gems/ruby-2.3.3
ruby-2.3.3 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.3.3 - #generating default wrappers........
ruby-2.3.3 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
Install of ruby-2.3.3 - #complete
Please be aware that you just installed a ruby that requires 2 patches just to be compiled on an up to date linux system.
This may have known and unaccounted for security vulnerabilities.
Please consider upgrading to ruby-2.4.1 which will have all of the latest security patches.
Ruby was built without documentation, to build it run: rvm docs generate-ri
[root@localhost 20:27 ~]# ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [i686-linux]
[root@localhost 20:28 ~]# gem -v
2.6.13
[root@localhost 20:28 ~]#

可以看到,不進ruby安裝好了2.3.3版本,還把rubygems也安裝好了。

如果要刪除掉某個版本的ruby可以用這個命令:rvm remove 1.9.3。

我們繼續(xù)安裝:

[root@localhost 20:28 ~]# gem install redis
Fetching: redis-4.0.0.gem (100%)
Successfully installed redis-4.0.0
Parsing documentation for redis-4.0.0
Installing ri documentation for redis-4.0.0
Done installing documentation for redis after 3 seconds
1 gem installed
[root@localhost 20:33 ~]#

看到這里,折騰了兩個晚上終于弄好了。接下來就是使用我們的redis-trib開啟集群了。

為了方便,我把redis-trib.rb這個文件復制了一份到/usr/local/bin這個目錄下,因為這個目錄在PATH下面,里面的命令可以直接執(zhí)行。

再次確認下六個redis節(jié)點的運行是ok的。

[root@localhost 20:35 /usr/local/redis-cluster]# ps aux|grep redis
root   2486 0.1 0.2 46060 2304 ?    Ssl 18:30  0:12 ./7000/redis-server 127.0.0.1:7000 [cluster]
root   2491 0.1 0.2 46060 2308 ?    Ssl 18:30  0:13 ./7001/redis-server 127.0.0.1:7001 [cluster]
root   2496 0.1 0.2 46060 2308 ?    Ssl 18:30  0:13 ./7002/redis-server 127.0.0.1:7002 [cluster]
root   2501 0.1 0.2 46060 2304 ?    Ssl 18:30  0:13 ./7003/redis-server 127.0.0.1:7003 [cluster]
root   2506 0.1 0.2 46060 2308 ?    Ssl 18:30  0:14 ./7004/redis-server 127.0.0.1:7004 [cluster]
root   2511 0.1 0.2 46060 2304 ?    Ssl 18:30  0:12 ./7005/redis-server 127.0.0.1:7005 [cluster]
root   31426 0.0 0.0  6048  784 pts/2  S+  20:35  0:00 grep redis
[root@localhost 20:35 /usr/local/redis-cluster]#

[root@localhost 20:35 /usr/local/redis-cluster]# redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
Adding replica 127.0.0.1:7003 to 127.0.0.1:7000
Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
M: 6d996f9e34f40b02afe06aa9d3c8f18a41875cb2 127.0.0.1:7000
  slots:0-5460 (5461 slots) master
M: 9bf2ee5d32fc350ec411d3eaad18f82492796e99 127.0.0.1:7001
  slots:5461-10922 (5462 slots) master
M: 6de604de12b4b4a3be46766bb95ccf4618dc0d75 127.0.0.1:7002
  slots:10923-16383 (5461 slots) master
S: f1bdbd841e37825169426486d6502e2cd99b76fe 127.0.0.1:7003
  replicates 6d996f9e34f40b02afe06aa9d3c8f18a41875cb2
S: 3ff95d180ec47fc58c9c5f73e2f54354128bfe7e 127.0.0.1:7004
  replicates 9bf2ee5d32fc350ec411d3eaad18f82492796e99
S: a4a09d80a4bb6c82345c376c59e5ae49e1d49701 127.0.0.1:7005
  replicates 6de604de12b4b4a3be46766bb95ccf4618dc0d75
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 127.0.0.1:7000)
M: 6d996f9e34f40b02afe06aa9d3c8f18a41875cb2 127.0.0.1:7000
  slots:0-5460 (5461 slots) master
  1 additional replica(s)
S: f1bdbd841e37825169426486d6502e2cd99b76fe 127.0.0.1:7003
  slots: (0 slots) slave
  replicates 6d996f9e34f40b02afe06aa9d3c8f18a41875cb2
M: 6de604de12b4b4a3be46766bb95ccf4618dc0d75 127.0.0.1:7002
  slots:10923-16383 (5461 slots) master
  1 additional replica(s)
M: 9bf2ee5d32fc350ec411d3eaad18f82492796e99 127.0.0.1:7001
  slots:5461-10922 (5462 slots) master
  1 additional replica(s)
S: 3ff95d180ec47fc58c9c5f73e2f54354128bfe7e 127.0.0.1:7004
  slots: (0 slots) slave
  replicates 9bf2ee5d32fc350ec411d3eaad18f82492796e99
S: a4a09d80a4bb6c82345c376c59e5ae49e1d49701 127.0.0.1:7005
  slots: (0 slots) slave
  replicates 6de604de12b4b4a3be46766bb95ccf4618dc0d75
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@localhost 20:37 /usr/local/redis-cluster]#


在創(chuàng)建的過程中,redis會給出一份預想的配置給我們看,確定沒問題就輸入yes并回車。系統(tǒng)就給我們創(chuàng)建了三個主,三個從的集群結構。

可以看到All 16384 slots covered。

redis-cli

redis-cli默認情況下連接的是本地的6379端口的redis服務器。

現(xiàn)在有六個端口,所以需要指定參數(shù)。

redis-cli -h xxx -p xxx -a xxx

-h:指定服務器

-p:指定端口號

-a:指定密碼

-c:開啟集群模式

[root@localhost 20:53 /usr/local/redis-cluster]# redis-cli -c -p 7000
127.0.0.1:7000> set name zhangsan
-> Redirected to slot [5798] located at 127.0.0.1:7001
OK
127.0.0.1:7001> exit
[root@localhost 20:53 /usr/local/redis-cluster]# redis-cli -c -p 7002
127.0.0.1:7002> get name
-> Redirected to slot [5798] located at 127.0.0.1:7001
"zhangsan"
127.0.0.1:7001>

可以看到,已經(jīng)可以共享數(shù)據(jù)了。

 但是,如果我們把某一個主節(jié)點殺掉呢?

[root@localhost 19:52 /usr/local/redis-cluster]# redis-cli -p 7002 debug segfault
Error: Server closed the connection
[root@localhost 19:53 /usr/local/redis-cluster]# redis-trib.rb check 127.0.0.1:7000
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: 6d996f9e34f40b02afe06aa9d3c8f18a41875cb2 127.0.0.1:7000
  slots:0-5460 (5461 slots) master
  1 additional replica(s)
M: 9bf2ee5d32fc350ec411d3eaad18f82492796e99 127.0.0.1:7001
  slots:5461-10922 (5462 slots) master
  1 additional replica(s)
S: 3ff95d180ec47fc58c9c5f73e2f54354128bfe7e 127.0.0.1:7004
  slots: (0 slots) slave
  replicates 9bf2ee5d32fc350ec411d3eaad18f82492796e99
M: a4a09d80a4bb6c82345c376c59e5ae49e1d49701 127.0.0.1:7005
  slots:10923-16383 (5461 slots) master
  0 additional replica(s)
S: f1bdbd841e37825169426486d6502e2cd99b76fe 127.0.0.1:7003
  slots: (0 slots) slave
  replicates 6d996f9e34f40b02afe06aa9d3c8f18a41875cb2
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@localhost 19:54 /usr/local/redis-cluster]#

可以看到7005端口的節(jié)點已經(jīng)變成主節(jié)點了。那如果繼續(xù)把7005節(jié)點也宕掉呢?

[root@localhost 19:58 /usr/local/redis-cluster]# redis-cli -p 7005 debug segfault
Error: Server closed the connection
[root@localhost 19:58 /usr/local/redis-cluster]# redis-trib.rb check 127.0.0.1:7000
[ERR] Sorry, can't connect to node 127.0.0.1:7005
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: 6d996f9e34f40b02afe06aa9d3c8f18a41875cb2 127.0.0.1:7000
  slots:0-5460 (5461 slots) master
  1 additional replica(s)
M: 9bf2ee5d32fc350ec411d3eaad18f82492796e99 127.0.0.1:7001
  slots:5461-10922 (5462 slots) master
  1 additional replica(s)
S: 3ff95d180ec47fc58c9c5f73e2f54354128bfe7e 127.0.0.1:7004
  slots: (0 slots) slave
  replicates 9bf2ee5d32fc350ec411d3eaad18f82492796e99
S: f1bdbd841e37825169426486d6502e2cd99b76fe 127.0.0.1:7003
  slots: (0 slots) slave
  replicates 6d996f9e34f40b02afe06aa9d3c8f18a41875cb2
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[ERR] Not all 16384 slots are covered by nodes.
[root@localhost 19:58 /usr/local/redis-cluster]#

可以看到集群已經(jīng)出現(xiàn)問題了。

追記:

在搭建多機多點集群的時候,遇到以下問題:

1、一直在等待...

>>> 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.......................

解決辦法:確認端口是否開放。如果沒有開發(fā),可以修改/etc/sysconfig/iptables文件,開放端口(復制一行前面開放端口的來修改),然后service iptables restart重啟防火墻。

極端的可以service iptables stop來關閉防火墻

2、槽被利用

/usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.0/lib/redis/client.rb:119:in `call': ERR Slot 5461 is already busy (Redis::CommandError)
 from /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.0/lib/redis.rb:2742:in `block in method_missing'
 from /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.0/lib/redis.rb:45:in `block in synchronize'
 from /usr/local/rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
 from /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.0/lib/redis.rb:45:in `synchronize'
 from /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.0/lib/redis.rb:2741: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:1700:in `main>'

解決辦法:刪除掉在redis.conf的dir目錄下的幾個文件redis.conf文件除外。

如果還是有相同的問題,可以考慮對所有節(jié)點執(zhí)行下面兩個命令。

redis-cli -p 端口號-h 主機物理地址 FLUSHALL

redis-cli -p 端口號-h 主機物理地址 CLUSTER RESET SOFT

您可能感興趣的文章:
  • redis集群搭建教程及遇到的問題處理
  • 詳解docker搭建redis集群的環(huán)境搭建
  • 詳解centos下搭建redis集群
  • 玩轉Redis搭建集群之Sentinel詳解
  • Redis 集群搭建和簡單使用教程
  • docker redis5.0 cluster集群搭建的實現(xiàn)
  • 基于docker搭建redis集群的方法
  • Redis6.0搭建集群Redis-cluster的方法
  • 5分鐘搭建redis集群(redis5.0.5)

標簽:松原 六安 鄂州 石嘴山 自貢 淄博 宜春 河北

巨人網(wǎng)絡通訊聲明:本文標題《Redis集群搭建全記錄》,本文關鍵詞  Redis,集群,搭建,全,記錄,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Redis集群搭建全記錄》相關的同類信息!
  • 本頁收集關于Redis集群搭建全記錄的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    在线播放一区二区精品视频| 久久激情一区| 91在线视频在线观看| 97一区二区三区| 欧美亚洲一区二区三区四区| 青青影院一区二区三区四区| 久久青草国产手机看片福利盒子| 97国产成人高清在线观看| 亚洲一区二区久久| 日本啊v在线| 日韩美女在线观看一区| 国产精品久久久久9999赢消| 国产香蕉免费精品视频| 日本啊v在线| 岳张嘴把我的精子吞下去| 国产精品欧美激情在线播放| 欧美日韩亚洲一区二区三区在线| 一个人免费观看在线视频www| 超碰97久久| 日韩精品久久久| jjzzjjzz欧美69巨大| 日本一级一片免费视频| 99国产精品久久久久久久| 888久久久| 国产欧美精品一区二区色综合朱莉| 国内精品在线播放| 夜级特黄日本大片_在线| 成人国产精品一区二区免费麻豆| 少妇激情av一区二区三区| 黄色高清无遮挡| 祥仔av免费一区二区三区四区| 香港三级日本三级a视频| 天堂视频福利| 久久这里有精品15一区二区三区| 日日干夜夜操s8| 在线观看国产欧美| 全部免费毛片在线播放一个| 97久久精品人人澡人人爽缅北| 精品人妻一区二区三区免费看| 中文字幕在线观看精品| 人妻 日韩 欧美 综合 制服| 欧美性69xxxx肥| av无码精品一区二区三区宅噜噜| 日韩加勒比系列| 91精品国产成人www| 成av人片一区二区| 免费中文字幕日韩欧美| 色大18成网站www在线观看| 欧美gay囗交囗交| 久久精品丝袜高跟鞋| 国产做a爰片久久毛片| 在线日本制服中文欧美| 国产精品久久久久久中文字| 精品二区久久| 黄动漫在线免费观看| 91精品国产综合久久香蕉最新版| 欧美一个色资源| 日本视频在线| 日韩中文视频免费在线观看| 国产99久久久国产精品成人免费| 啦啦啦高清在线观看www| 亚洲精品一区中文字幕电影| 日韩三级视频中文字幕| 麻豆视频在线免费观看| 91在线免费观看网站| 亚洲在线日韩| 日本福利在线观看| 国产一区二区三区久久久| 国产原创popny丨九色| xfplay5566色资源网站| 久久乐国产精品| 99在线视频影院| 中文在线字幕免费观| 国产精品色婷婷视频| 久久久五月婷婷| 中文字幕av高清在线观看| 亚洲欧美一区二区三区久本道91| 触手亚洲一区二区三区| 香蕉久久aⅴ一区二区三区| 欧美日韩在线精品一区二区三区激情综| 高清福利在线观看| 影音先锋成人在线电影| 国产私拍福利精品视频二区| 国产成人av在线影院| 亚洲午夜视频在线| 毛片在线免费视频| 无码人妻精品一区二区中文| 欧美日韩精品一区二区三区视频| 正在播放亚洲| 午夜久久久久久| 亚洲一区二区在线播放相泽| 日韩免费视频在线观看| 91视频 -- 69xx| 成人午夜两性视频| 理论视频在线| 美日韩精品免费视频| 日韩大片在线永久免费观看网站| 亚洲一区二区三区三| 国产精品中文字幕在线观看| 欧美性猛交99久久久久99| www.色五月| 精品乱码一区| 欧美性猛交xxx乱大交3蜜桃| 日本在线电影一区二区三区| 亚洲精品午夜精品| 国内精品视频在线观看| 青娱在线视频| av在线亚洲天堂| 污网站在线观看免费| 精品久久久久久久久久久久久久久久久久| 一区二区不卡在线观看| 国产成人精品一区二三区| 国内精品自线一区二区三区视频| 国产传媒久久久| 欧美日本网站| 黄色www在线观看| 在线视频精品一| 亚洲精品一区二区三区av| 午夜精品久久久久久久99热黄桃| 四虎电影院在线观看| 亚洲午夜久久久久久久久久久| 在线观看国产原创自拍视频| 国产尤物久久久| 国产精品欧美一区二区三区奶水| 欧美 日本 亚洲| 超碰高清在线| a级片免费观看| 久久久国产精品一区| 久久国产精品久久久久久| 欧美好骚综合网| 国产精久久一区二区| 成年网站在线看| 四虎永久网址| 日本1区2区3区视频| 丰满熟女人妻一区二区三区| 在线观看黄色| 亚洲四区在线观看| 国产精品一区二区久激情瑜伽| 欧美丝袜丝交足nylons| а√天堂8资源在线官网| 九色porny蝌蚪视频在线观看| 午夜男人视频在线观看| 免费黄色网址在线| 青青草超碰在线| 最新国产精品久久久| 美日韩免费视频| 国产a国产a国产a| 最新91视频| 最新国产在线拍揄自揄视频| 亚洲AV成人无码一二三区在线| 最新中文字幕日本| 300部国产真实乱| 日韩精品视频免费看| 只有这里有精品| 亚洲视频每日更新| 天天影视天天精品| 亚洲已满18点击进入在线看片| 91久久国产精品91久久性色| 色综合一本到久久亚洲91| 亚洲影院久久精品| 免费国产自久久久久三四区久久| 国产精品高潮呻吟久久av黑人| 亚洲午夜一区| 国产激情久久久久久熟女老人av| 亚洲欧美在线播放| 亚洲欧美中文在线视频| 在线不卡视频| 精品亚洲永久免费| 日日夜夜网站| 91麻豆6部合集magnet| 亚洲二区av| 蜜臀av一区二区三区| 欧美日韩免费观看一区三区| 日韩av在线免费观看不卡| 亚洲色图另类色图| 精品国精品国产自在久国产应用| 日本一区二区免费在线观看视频| 加勒比中文字幕精品| 欧美福利在线视频| 色一情一乱一区二区三区| 成人在线免费在线观看| 国产成人鲁鲁免费视频a| 激情综合网五月婷婷| 国产香蕉尹人视频在线| 国产成人影院| 国产aⅴ爽av久久久久成人| 亚洲欧美色图| 精品国产自在精品国产浪潮| 黄网视频午夜青春| 国产综合精品久久| 麻豆视频在线观看免费网站黄| 任你躁av一区二区三区| 欧美日韩看看2015永久免费| 国产成人精选| 亚洲精选av| 日本免费一级视频| 久久精品免视看| 秋霞无码一区二区| 婷婷在线免费观看| 国产一区欧美二区| 漂亮人妻被黑人久久精品| 最新久久zyz资源站| 免费无码av片在线观看| 日韩国产精品久久久久久亚洲| 黑森林av导航| 国产精品99久久久久久成人| 欧美一区二区三区综合| 邻家有女韩剧在线观看国语| 99热都是精品| 黑人巨大xxx| 永久免费在线看片视频| 国产精品天美传媒沈樵| 国产日韩欧美在线一区| 在线观看免费视频国产| 麻豆传媒网站在线观看| 国产成人啪午夜精品网站男同| 97高清免费视频| 无码国产伦一区二区三区视频| 91精品国产色综合久久ai换脸| 男人添女人下面高潮视频| 中文字幕丰满乱码| 精品国产aⅴ一区二区三区东京热| 一道本视频在线观看| 五月婷婷视频在线观看| 免费看污片的网站| 国产精品毛片久久久久久久av| 国产免费嫩草影院| 欧美一级久久久| 四虎884aa成人精品| 国产精品99久久久久久似苏梦涵| 欧美一区二区在线播放| 久色视频在线播放| 国产女同性恋一区二区| 星空影院最新电视剧免费观看| 亚洲成人一区二区三区| 日本电影免费看| 91精品国产91久久久久| 六月婷婷色综合| www国产亚洲精品久久麻豆| 午夜影院免费体验区| 影音成人av| 香港欧美日韩三级黄色一级电影网站| 性一交一乱一精一晶| 91成人免费在线视频| 日本最新一区二区三区视频观看| 欧美成人三级电影在线| 久久高清无码视频| 在线精品一区二区| 国产精品果冻传媒潘| 91久久夜色精品国产网站| 欧美日韩精品一区视频| 久久99久久99精品中文字幕| 国产区一区二区三| 亚洲v精品v日韩v欧美v专区| 午夜精品福利视频网站| 美女高潮黄又色高清视频免费| 香蕉精品视频在线观看| 欧美日韩精品是欧美日韩精品| 亚洲欧洲美洲av| 91久久久久久久久久久久久| 亚洲免费三区一区二区| 久久女同精品一区二区| 岛国av免费在线观看| 大色综合视频网站在线播放| 综合精品一区| 欧美一区二区三区播放老司机| 国产精品久久久久一区二区三区共| 婷婷丁香激情网| 欧美性猛交xxxx免费看久久久| 欧美性猛交xxxxx水多| 在线人体午夜视频| 人人在线视频| 国产中文欧美日韩在线| 无码免费一区二区三区免费播放| 欧美疯狂做受xxxx富婆| 精品无人乱码| 欧美三级中文字幕在线观看| √天堂中文官网8在线| 欧美精品第一页在线播放| 91成人在线观看国产| 精品无码国产一区二区三区av| 日韩精品永久网址| 欧美性猛交xxxx黑人| 影音先锋男人在线资源| 精品一区二区中文字幕| 国产自产一区二区| 国产偷人爽久久久久久老妇app| 在线免费国产| 五月天婷婷视频| 日韩大尺度黄色| 欧美精品福利在线| 亚洲欧美在线视频观看| 欧美福利电影网| 国产破处视频在线观看| 久久久久久久美女| 香蕉久久视频| 在线播放中文一区| 色偷偷av一区二区三区| 国内精品久久久久伊人av| 久久久久久久久岛国免费| 欧美性猛交99久久久久99| 女人抽搐喷水高潮国产精品| 欧美日韩一区二区三区免费| 亚洲精品91美女久久久久久久| 久久精品国产av一区二区三区| 久久国产激情视频| 青青青草网站免费视频在线观看| 俄罗斯黄色录像| 亚洲日本欧美日韩高观看| 久久久久久久一区二区三区| 欧美激情精品久久久久久| 国产专区第一页| 亚洲一级在线观看| 亚洲国产成人av网| 成人做爰69片免费| 91在线高清免费观看| 久国内精品在线| 91夜夜蜜桃臀一区二区三区| 国产大学生粉嫩无套流白浆| 欧美丰满熟妇xxxxx| 三区四区电影在线观看| 色欲av无码一区二区人妻| 国产精品情趣视频| 色天下一区二区三区| 精品人伦一区二区三电影| 久久一区二区免费播放| 午夜久久久久久久久久久| 欧美激情一区二区|