欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

redis集群搭建_動力節(jié)點Java學(xué)院整理

 更新時間:2017年08月28日 11:25:19   作者:huangxincheng  
這篇文章主要介紹了redis集群搭建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

現(xiàn)在項目上用redis的話,很少說不用集群的情況,畢竟如果生產(chǎn)上只有一臺redis會有極大的風(fēng)險,比如機器掛掉,或者內(nèi)存爆掉,就比如我們生產(chǎn)環(huán)境曾今也遭遇到這種情況,導(dǎo)致redis內(nèi)存不夠掛掉的情況,當然這些都是我們及其不能容忍的,第一個必須要做到高可靠,其次才是高性能,好了,下面我來逐一搭建一下。

一:Redis集群搭建

1. 下載

首先去官網(wǎng)下載較新的3.2.0版本,下載方式還是非常簡單的,比如官網(wǎng)介紹的這樣。

$ wget http://download.redis.io/releases/redis-3.2.0.tar.gz
$ tar xzf redis-3.2.0.tar.gz
$ cd redis-3.2.0
$ make

2. redis配置

由于我們要做集群,而且還要redis自帶的redis-trib.rb 能正常運行,我們需要在集群中開啟三臺master,三臺slave,所以這里我需要建立6個文件夾,而且文件夾的名稱就使用端口地址的名字,比如:6389. 6380....6384。

3. config配置。

現(xiàn)在directory的分布情況大致如上圖,接下來要做的事情就是配置redis.conf了,在這里需要配置四個選項。。。

<1> port  端口地址,比如6380文件夾下面的port就是6380,

# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379

<2> cluster-enabled 和 cluster-config-file

這個顧名思義,首先需要開啟redis的cluster模式,然后配置一個cluster-config-file文件,這個文件用于存放redis的實時信息,redis會動態(tài)追加和修改這個conf下面的內(nèi)容信息,不過要記住,這個nodes-6379.conf 可以根據(jù) 端口文件夾依次配置,比如6380文件夾可以改成nodes-6380.conf這樣。。。

# Normal Redis instances can't be part of a Redis Cluster; only nodes that are
# started as cluster nodes can. In order to start a Redis instance as a
# cluster node enable the cluster support uncommenting the following:
#
cluster-enabled yes

# Every cluster node has a cluster configuration file. This file is not
# intended to be edited by hand. It is created and updated by Redis nodes.
# Every Redis Cluster node requires a different cluster configuration file.
# Make sure that instances running in the same system do not have
# overlapping cluster configuration file names.
#
cluster-config-file nodes-6379.conf

<3> directory

為了方便管理,我這里配置的root目錄取決于在哪個文件夾,比如6380下面我的dir就是: dir ./6380/

# Note that you must specify a directory here, not a file name.
dir ./6379/

<4> protected-mode

這個是redis 3.2 才追加的一個功能,從功能注釋中,我們就可以發(fā)現(xiàn),這個默認就是不讓外界可以訪問redis,所以這里我們就改為no,可以遠程訪問。

# By default protected mode is enabled. You should disable it only if
# you are sure you want clients from other hosts to connect to Redis
# even if no authentication is configured, nor a specific set of interfaces
# are explicitly listed using the "bind" directive.
protected-mode no

ok,到現(xiàn)在為止,我們的config就修改完畢了,其他端口的文件夾也可以依次配置之~

二:開啟redis

到現(xiàn)在為止,各個端口文件夾都配置成功了,接下來準備開啟了。

接下來我們可以看一下,在6379下面是不是有生成node-6379.conf文件,比如下面:

三:配置redis-trib.rb

因為redis-trib.rb是ruby寫的,而我們的電腦肯定是沒有ruby和一些配置依賴項,不過沒關(guān)系,有強大的yum安裝,一切都不是問題。

1. 執(zhí)行replicas命令

[jack@localhost ~]$ cluster/redis-trib.rb create --replicas 1 192.168.161.133:6379 192.168.161.133:6380 192.168.161.133:6381 192.168.161.133:6382 192.168.161.133:6383 192.168.161.133:6384
/usr/bin/env: ruby: No such file or directory
[jack@localhost ~]$ 

可以看到ruby是沒有安裝的,所以下一步我們要安裝ruby了。。。

2. 安裝ruby 【一定要是管理員權(quán)限哦】

[jack@localhost ~]$ sudo
usage: sudo [-D level] -h | -K | -k | -V
usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user
      name|#uid]
usage: sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user
      name] [-u user name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C fd] [-D level] [-g
      groupname|#gid] [-p prompt] [-u user name|#uid] [-g groupname|#gid]
      [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C fd] [-D level] [-g
      groupname|#gid] [-p prompt] [-u user name|#uid] file ...
[jack@localhost ~]$ su
Password: 
jacsu: incorrect password
[jack@localhost ~]$ yum install ruby
Loaded plugins: fastestmirror, refresh-packagekit, security
You need to be root to perform this command.
[jack@localhost ~]$ jack
bash: jack: command not found
[jack@localhost ~]$ su
Password: 
[root@localhost jack]# yum install ruby
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirror.bit.edu.cn
 * updates: mirror.bit.edu.cn
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ruby.x86_64 0:1.8.7.374-4.el6_6 will be installed
--> Processing Dependency: ruby-libs = 1.8.7.374-4.el6_6 for package: ruby-1.8.7.374-4.el6_6.x86_64
--> Processing Dependency: libruby.so.1.8()(64bit) for package: ruby-1.8.7.374-4.el6_6.x86_64
--> Running transaction check
---> Package ruby-libs.x86_64 0:1.8.7.374-4.el6_6 will be installed
--> Processing Dependency: libreadline.so.5()(64bit) for package: ruby-libs-1.8.7.374-4.el6_6.x86_64
--> Running transaction check
---> Package compat-readline5.x86_64 0:5.2-17.1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package        Arch     Version          Repository Size
================================================================================
Installing:
 ruby          x86_64    1.8.7.374-4.el6_6     base    538 k
Installing for dependencies:
 compat-readline5    x86_64    5.2-17.1.el6       base    130 k
 ruby-libs       x86_64    1.8.7.374-4.el6_6     base    1.7 M

Transaction Summary
================================================================================
Install    3 Package(s)

Total download size: 2.3 M
Installed size: 7.8 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): compat-readline5-5.2-17.1.el6.x86_64.rpm     | 130 kB   00:00   
(2/3): ruby-1.8.7.374-4.el6_6.x86_64.rpm         | 538 kB   00:00   
(3/3): ruby-libs-1.8.7.374-4.el6_6.x86_64.rpm      | 1.7 MB   00:02   
--------------------------------------------------------------------------------
Total                      747 kB/s | 2.3 MB   00:03   
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
 Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
 Package: centos-release-6-5.el6.centos.11.1.x86_64 (@anaconda-CentOS-201311272149.x86_64/6.5)
 From  : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing : compat-readline5-5.2-17.1.el6.x86_64             1/3 
 Installing : ruby-libs-1.8.7.374-4.el6_6.x86_64              2/3 
 Installing : ruby-1.8.7.374-4.el6_6.x86_64                3/3 
 Verifying : compat-readline5-5.2-17.1.el6.x86_64             1/3 
 Verifying : ruby-libs-1.8.7.374-4.el6_6.x86_64              2/3 
 Verifying : ruby-1.8.7.374-4.el6_6.x86_64                3/3 

Installed:
 ruby.x86_64 0:1.8.7.374-4.el6_6                        

Dependency Installed:
 compat-readline5.x86_64 0:5.2-17.1.el6 ruby-libs.x86_64 0:1.8.7.374-4.el6_6 

Complete!
[root@localhost jack]# 

3. 安裝rubygems

接著我們再次運行 replicas命令,看看會怎么樣。。。 

[root@localhost jack]# cluster/redis-trib.rb create --replicas 1 192.168.161.133:6379 192.168.161.133:6380 192.168.161.133:6381 192.168.161.133:6382 192.168.161.133:6383 192.168.161.133:6384
cluster/redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
  from cluster/redis-trib.rb:24
[root@localhost jack]# 

結(jié)果苦逼了,還是報錯,看提示貌似是少了一個rubygems,這次我們還是通過yum安裝。

[root@localhost jack]# yum install -y rubygems
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirror.bit.edu.cn
 * updates: mirror.bit.edu.cn
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package rubygems.noarch 0:1.3.7-5.el6 will be installed
--> Processing Dependency: ruby-rdoc for package: rubygems-1.3.7-5.el6.noarch
--> Running transaction check
---> Package ruby-rdoc.x86_64 0:1.8.7.374-4.el6_6 will be installed
--> Processing Dependency: ruby-irb = 1.8.7.374-4.el6_6 for package: ruby-rdoc-1.8.7.374-4.el6_6.x86_64
--> Running transaction check
---> Package ruby-irb.x86_64 0:1.8.7.374-4.el6_6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package      Arch      Version          Repository  Size
================================================================================
Installing:
 rubygems     noarch     1.3.7-5.el6        base     207 k
Installing for dependencies:
 ruby-irb     x86_64     1.8.7.374-4.el6_6     base     317 k
 ruby-rdoc     x86_64     1.8.7.374-4.el6_6     base     381 k

Transaction Summary
================================================================================
Install    3 Package(s)

Total download size: 905 k
Installed size: 3.0 M
Downloading Packages:
(1/3): ruby-irb-1.8.7.374-4.el6_6.x86_64.rpm       | 317 kB   00:00   
(2/3): ruby-rdoc-1.8.7.374-4.el6_6.x86_64.rpm      | 381 kB   00:00   
(3/3): rubygems-1.3.7-5.el6.noarch.rpm          | 207 kB   00:00   
--------------------------------------------------------------------------------
Total                      625 kB/s | 905 kB   00:01   
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing : ruby-irb-1.8.7.374-4.el6_6.x86_64              1/3 
 Installing : ruby-rdoc-1.8.7.374-4.el6_6.x86_64              2/3 
 Installing : rubygems-1.3.7-5.el6.noarch                 3/3 
 Verifying : ruby-rdoc-1.8.7.374-4.el6_6.x86_64              1/3 
 Verifying : ruby-irb-1.8.7.374-4.el6_6.x86_64              2/3 
 Verifying : rubygems-1.3.7-5.el6.noarch                 3/3 

Installed:
 rubygems.noarch 0:1.3.7-5.el6                         

Dependency Installed:
 ruby-irb.x86_64 0:1.8.7.374-4.el6_6  ruby-rdoc.x86_64 0:1.8.7.374-4.el6_6  

Complete!
[root@localhost jack]# 

 

4. 安裝redis驅(qū)動

 還是繼續(xù)不死心,我們繼續(xù)運行replicas命令命令。

[root@localhost jack]# cluster/redis-trib.rb create --replicas 1 192.168.161.133:6379 192.168.161.133:6380 192.168.161.133:6381 192.168.161.133:6382 192.168.161.133:6383 192.168.161.133:6384
/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 cluster/redis-trib.rb:25
[root@localhost jack]# 

還是有問題,這次貌似是一個gem_original_require沒有安裝,當然這個一般是說ruby版本太老了,所以現(xiàn)在親要么升級ruby版本,要么直接安裝ruby的redis驅(qū)動。

[root@localhost jack]# gem install redis
Successfully installed redis-3.3.0
1 gem installed
Installing ri documentation for redis-3.3.0...
Installing RDoc documentation for redis-3.3.0...

6. 運行replicas命令

終于貌似所有的依賴我們都解決了,接下來就可以真的執(zhí)行了。

[root@localhost jack]# cluster/redis-trib.rb create --replicas 1 192.168.161.133:6379 192.168.161.133:6380 192.168.161.133:6381 192.168.161.133:6382 192.168.161.133:6383 192.168.161.133:6384
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.161.133:6379
192.168.161.133:6380
192.168.161.133:6381
Adding replica 192.168.161.133:6382 to 192.168.161.133:6379
Adding replica 192.168.161.133:6383 to 192.168.161.133:6380
Adding replica 192.168.161.133:6384 to 192.168.161.133:6381
M: fdae457e803e2e04a7c549c69b44a2beefdae3bc 192.168.161.133:6379
  slots:0-5460 (5461 slots) master
M: 74285cee0fa65e64b443ecc630e447a8a65ee9f8 192.168.161.133:6380
  slots:5461-10922 (5462 slots) master
M: 14ed067a1b85044325d5800fa8479a6b4e41a10c 192.168.161.133:6381
  slots:10923-16383 (5461 slots) master
S: c50b1ff1fe3a00b16703f3b5705d2dafe046240b 192.168.161.133:6382
  replicates fdae457e803e2e04a7c549c69b44a2beefdae3bc
S: 8f7bd92f7ffb48e327820693a5820b5be7ea5556 192.168.161.133:6383
  replicates 74285cee0fa65e64b443ecc630e447a8a65ee9f8
S: 4a85ed078b4c99afad7f3a9a8df09082c681a649 192.168.161.133:6384
  replicates 14ed067a1b85044325d5800fa8479a6b4e41a10c
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.161.133:6379)
M: fdae457e803e2e04a7c549c69b44a2beefdae3bc 192.168.161.133:6379
  slots:0-5460 (5461 slots) master
M: 74285cee0fa65e64b443ecc630e447a8a65ee9f8 192.168.161.133:6380
  slots:5461-10922 (5462 slots) master
M: 14ed067a1b85044325d5800fa8479a6b4e41a10c 192.168.161.133:6381
  slots:10923-16383 (5461 slots) master
M: c50b1ff1fe3a00b16703f3b5705d2dafe046240b 192.168.161.133:6382
  slots: (0 slots) master
  replicates fdae457e803e2e04a7c549c69b44a2beefdae3bc
M: 8f7bd92f7ffb48e327820693a5820b5be7ea5556 192.168.161.133:6383
  slots: (0 slots) master
  replicates 74285cee0fa65e64b443ecc630e447a8a65ee9f8
M: 4a85ed078b4c99afad7f3a9a8df09082c681a649 192.168.161.133:6384
  slots: (0 slots) master
  replicates 14ed067a1b85044325d5800fa8479a6b4e41a10c
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@localhost jack]# 

從上面可以看到,trib程序告知我們是否用 6379,6380,6381 作為主, 6382,6383,6384作為從。。然后我就恩準了。。就這樣我們的集群就創(chuàng)建好了

相關(guān)文章

  • muduo源碼分析之TcpServer模塊詳細介紹

    muduo源碼分析之TcpServer模塊詳細介紹

    這篇文章主要介紹了muduo源碼分析之TcpServer模塊,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 通過kubesphere部署redis的方法

    通過kubesphere部署redis的方法

    這篇文章主要介紹了通過kubesphere部署redis的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • window手動操作清理redis緩存的技巧總結(jié)

    window手動操作清理redis緩存的技巧總結(jié)

    在本篇文章中小編給大家分享了關(guān)于window環(huán)境手動操作清理redis緩存的方法和技巧,有興趣的朋友們可以跟著學(xué)習(xí)下。
    2019-07-07
  • 分割超大Redis數(shù)據(jù)庫例子

    分割超大Redis數(shù)據(jù)庫例子

    這篇文章主要介紹了分割超大Redis數(shù)據(jù)庫例子,本文講解了分割的需求、分割的思路及分割實例,需要的朋友可以參考下
    2015-03-03
  • Redis高效率原因及數(shù)據(jù)結(jié)構(gòu)分析

    Redis高效率原因及數(shù)據(jù)結(jié)構(gòu)分析

    這篇文章主要為大家詳細的介紹了Redis高效的原因以及分析了Redis高效的數(shù)據(jù)結(jié)構(gòu),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Redis GEO地理信息定位功能

    Redis GEO地理信息定位功能

    Redis 提供了GEO地理信息定位功能,地理空間項(經(jīng)度、緯度、名稱),實現(xiàn)查找附近的人、上班打卡、自行車租賃、搖一搖等相關(guān)與地理位置信息的功能,這篇文章主要介紹了Redis GEO地理信息定位功能,需要的朋友可以參考下
    2023-12-12
  • Redis緩存空間優(yōu)化實踐詳解

    Redis緩存空間優(yōu)化實踐詳解

    緩存Redis,是我們最常用的服務(wù),其適用場景廣泛,被大量應(yīng)用到各業(yè)務(wù)場景中。也正因如此,緩存成為了重要的硬件成本來源,我們有必要從空間上做一些優(yōu)化,降低成本的同時也會提高性能,本文通過代碼示例介紹了redis如何優(yōu)化緩存空間,需要的朋友可以參考一下
    2023-04-04
  • 通俗易懂的Redis數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)教程(入門)

    通俗易懂的Redis數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)教程(入門)

    這篇文章主要介紹了通俗易懂的Redis數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)教程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Redis瞬時高并發(fā)秒殺方案總結(jié)

    Redis瞬時高并發(fā)秒殺方案總結(jié)

    本文講述了Redis瞬時高并發(fā)秒殺方案總結(jié),具有很好的參考價值,感興趣的小伙伴們可以參考一下,具體如下:
    2018-05-05
  • 使用Ruby腳本部署Redis Cluster集群步驟講解

    使用Ruby腳本部署Redis Cluster集群步驟講解

    今天小編就為大家分享一篇關(guān)于使用Ruby腳本部署Redis Cluster集群步驟講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論