基於三臺虛擬機器模擬真機部署三主三從redis叢集全過程實錄
阿新 • • 發佈:2018-12-25
第一步:首先準備三臺CentOS虛擬機器
主 | 從 | 主 | 從 | 主 | 從 |
192.168.3.101 | 192.168.3.102 | 192.168.3.103 | |||
埠:6379 | 埠:6380 | 埠:6379 | 埠:6380 | 埠:6379 | 埠:6380 |
第二步:其次編寫兩套redis.conf配置檔案,分別服務於主節點和從節點
主:從: 內容如下所示:
主節點配置 | 從節點配置 |
port 6379 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes daemonize yes protected-mode no | port 6380 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes daemonize yes protected-mode no |
第三步:準備環境
1、準備redis redis-4.0.10 下載地址:http://download.redis.io/releases/redis-4.0.10.tar.gz 我為了統一,將所有的tar包拷貝至三臺機器的usr/redis_cluster目錄下,該目錄為我自己建的,可以按照個人喜好建立自己的資料夾以示區分。由於一臺機器上主從節點要啟動兩個redis例項,所以建議單獨建立兩個資料夾儲存主從redis程式。如下所示
192.168.3.101 | 192.168.3.102 | 192.168.3.103 |
將redis-4.0.10.tar.gz複製到每一個資料夾中,執行命令進行解壓。以redis_101_01為例
[[email protected] redis_101_01]# tar -xzvf redis-4.0.10.tar.gz
[[email protected] redis_101_01]# cd redis-4.0.10/src/
[[email protected] src]# make MALLOC=libc
將剛才的配置檔案“redis_conf”分別按照1為主 2為從的規劃放置在資料夾中
2、準備Ruby環境,安裝RVM
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
$ \curl -sSL https://get.rvm.io | bash -s stable
$ source ~/.bashrc
$ source ~/.bash_profile
列出已知的 Ruby 版本
rvm list known
安裝一個 Ruby 版本
rvm install 2.5.1 --disable-binary
3、安裝redis外掛
gem install redis
看到如下提示則成功
第四步 : 啟動redis例項
在不同的機器上分別執行下面命令 101機器就執行 101_01 101_02的命令
[[email protected] redis-cluster]# ./redis_101_01/redis-4.0.10/src/redis-server ./redis_101_01/redis.conf
[[email protected] redis-cluster]# ./redis_101_02/redis-4.0.10/src/redis-server ./redis_101_02/redis.conf
[[email protected] redis-cluster]# ./redis_102_01/redis-4.0.10/src/redis-server ./redis_102_01/redis.conf
[[email protected] redis-cluster]# ./redis_102_02/redis-4.0.10/src/redis-server ./redis_102_02/redis.conf
[[email protected] redis-cluster]# ./redis_103_01/redis-4.0.10/src/redis-server ./redis_103_01/redis.conf
[[email protected] redis-cluster]# ./redis_103_02/redis-4.0.10/src/redis-server ./redis_103_02/redis.conf
第五步: 關閉linux防火牆
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
第六步 : 啟動redis叢集
./redis-trib.rb create --replicas 1 192.168.3.101:6379 192.168.3.101:6380 192.168.3.102:6379 192.168.3.102:6380 192.168.3.103:6379 192.168.3.103:6380
測試一下
102機器上
這個時候如果在其他機器上去獲取這個key 會報錯
這是因為這個值已經放在102槽中,
怎麼辦,我們可以使用 ./redis-cli -c方式查詢
可以看到該值位於102