redis僞集羣搭建(親測無坑)

1、單機版安裝部署,僞集羣只須要操做前1-8步便可,再往下瀏覽找到:2、單機版-僞集羣  安裝部署繼續搭建,如需設置密碼參照第10步node

一、安裝基本工具linux

yum install -y gcc-c++ vim lrzsz wget 

二、建立、進入目錄c++

mkdir /opt/redis
cd /opt/redis

三、下載redis

wget http://download.redis.io/releases/redis-5.0.5.tar.gz

四、解壓、查看文件算法

tar zxvf redis-5.0.5.tar.gz
ll

五、賦權vim

chmod 777 -R redis-5.0.5

六、進入目錄,查看文件列表api

cd redis-5.0.5

七、編譯、安裝文件 ruby

安裝目錄  /usr/local/redis
make install PREFIX=/usr/local/redis

八、進入目錄、查看文件列表bash

cd /usr/local/redis/

九、控制檯啓動,使用命令./redis-serverapp

bin/redis-server

出現如下結果證實啓動成功:

redis僞集羣搭建(親測無坑)

十、後臺啓動

(1)從redis解壓目錄複製redis.conf到redis安裝目錄

cp /opt/redis/redis-5.0.5/redis.conf   /usr/local/redis/

(2)修改redis.conf

vim /usr/local/redis/redis.conf

修改daemonize yes

參數 註釋
port 7000 端口7000,7002,7003
bind 本機ip 默認ip爲127.0.0.1 須要改成其餘節點機器可訪問的ip 不然建立集羣時沒法訪問對應的端口,沒法建立集羣
daemonize yes redis後臺運行
pidfile /var/run/redis_7000.pid pidfile文件對應7000,7001,7002
cluster-enabled yes /開啓集羣 把註釋#去掉
cluster-config-file nodes_7000.conf 集羣的配置 配置文件首次啓動自動生成 7000,7001,7002
cluster-node-timeout 15000 請求超時 默認15秒,可自行設置
appendonly yes aof日誌開啓 有須要就開啓,它會每次寫操做都記錄一條日誌 
maxmemory 7516192768 限制內存在7G
masterauth 123lxo[9^Ki34&x
requirepass 123lxo[9^Ki34&x

複製代碼
•接着在另一臺機器上,操做重複以上三步,只是把目錄改成700三、700四、7005,對應的配置文件也按照這個規則修改便可

若是意外主機重啓了,往集羣中添加新節點

redis-cli --cluster add-node -a "123lxo[9^Ki34&x" 192.168.47.212:7002 192.168.91.244:7000

添加從節點

redis-cli --cluster add-node -a "123lxo[9^Ki34&x" 192.168.172.127:7003 192.168.83.158:7003 --cluster-slave

刪除節點

redis-cli --cluster del-node -a "123lxo[9^Ki34&x"  192.168.47.212:7005 b31ef3b428d20915248b07f1f32694e3caff8a1c

設置開機自啓

[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/home/ec2-user/redis-5.0.5/src/redis-server  /home/ec2-user/redis-5.0.5/redis_cluster/7003/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
sudo systemctl enable redis 開機自啓
sudo systemctl status redis  查看狀態

在任意一個 redis 節點的主機上執行如下命令:

redis-cli -c -h 192.168.0.100 -p 7000 cluster info

若是有密碼加

redis-cli -c -h 192.168.0.100 -p 7000 -a 」123lxo[9^Ki34&x」 cluster info

列出集羣節點
在任意一個 redis 節點的主機上執行如下命令,列出集羣當前已知的全部節點(node),以及這些節點的相關信息。

redis-cli -c -h 192.168.68.117 -p 7000  -a 」123lxo[9^Ki34&x」 cluster nodes

(3)進入目錄,啓動服務

cd /usr/local/redis/
bin/redis-server redis.conf

十一、查看啓動信息

ps -ef | grep redis

十二、基本操做

/usr/local/redis/bin/redis-cli

1三、中止服務

redis-cli -h localhost -p 6379(端口) shutdown //中止服務

或者 kill -9 (pid)

2、單機版-僞集羣  安裝部署

一、編譯安裝

第三部分(單機版安裝部署 1 至 8 步)

並把配置文件  redis.conf  從  redis  解壓目錄複製到  redis  安裝目錄

cp /opt/redis/redis-5.0.5/redis.conf   /usr/local/redis/

二、安裝基本工具

yum install -y net-tools wget lrzsz vim

三、從redis解壓目錄複製redis.conf到redis安裝目錄

若是 /usr/local/redis 或者 /usr/local/redis/bin 下有 dump.rdb 文件,則刪除

rm -rf /usr/local/redis/dump.rdb
rm -rf /usr/local/redis/bin/dump.rdb

四、建立目錄  /usr/local/redis-cluster  用來存放集羣實例

mkdir /usr/local/redis-cluster

進入目錄  /usr/local/redis-cluster

cd /usr/local/redis-cluster

五、建立節點目錄(6個   存放六個實例)  

mkdir node1 node2 node3 node4 node5 node6

六、複製文件(把編譯安裝好的實例分別複製到港建立的 6 個目錄下)

cp -R /usr/local/redis/* /usr/local/redis-cluster/node1/
cp -R /usr/local/redis/* /usr/local/redis-cluster/node2/
cp -R /usr/local/redis/* /usr/local/redis-cluster/node3/
cp -R /usr/local/redis/* /usr/local/redis-cluster/node4/
cp -R /usr/local/redis/* /usr/local/redis-cluster/node5/
cp -R /usr/local/redis/* /usr/local/redis-cluster/node6/

七、編輯各自節點(實例)的配置文件(以node1的配置文件redis.conf爲例,其餘5個節點參照node1)

vim node1/redis.conf

(1)daemonize yes  
(2)port 7001 #(其他節點:700二、700三、700四、700五、7006)
(3)pidfile /var/run/redis_7001.pid  #(其他節點:700二、700三、700四、700五、7006)redis以守護進程方式運行時,系統默認會把pid寫入/var/run/redis_7001.pid
(4)cluster-enabled yes  #此redis實例做爲集羣的一個節點
(5)cluster-config-file nodes-7001.conf #(其他節點:nodes-700二、三、四、五、6.conf)集羣配置文件,系統自動維護,不能人工編輯,主要記錄集羣中有哪些節點,狀態等參數
(6)cluster-node-timeout 15000  #節點可以失聯的最大時間
分別編輯其他各個節點的配置文件,修改各自的配置信息,改爲各自對應的端口(具體過程參照node1)。

八、下載 gem 文件

wget https://rubygems.org/downloads/redis-4.1.2.gem

(下載地址:https://rubygems.org/gems/redis/versions/4.1.2
賦權

chmod 777 redis-4.1.2.gem

九、安裝 ruby 環境

yum install -y ruby
gem install /usr/local/redis-cluster/redis-4.1.2.gem

直接安裝gem文件會提示 ruby 版本過低,須要 ruby 版本在 2.3 以上。

解決方案:

一、安裝基本工具

yum install -y curl ruby

二、查看現有版本

ruby -v
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]

三、獲取rvm.io(發現安裝失敗)

curl -L get.rvm.io | bash -s stable

四、根據提示增長引用

curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
或者
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -

五、再一次獲取rvm.io(成功!)

curl -L get.rvm.io | bash -s stable

六、查找配置文件

find / -name rvm.sh
/etc/profile.d/rvm.sh

使配置文件生效

source /etc/profile.d/rvm.sh

七、下載RVM依賴

rvm requirements

八、再查看配置文件

find / -name rvm -print

九、查看rvm列表

rvm list known

十、安裝  rvm 的 v2.4.1

rvm install 2.4.1

十一、配置環境變量

rvm use 2.4.1
Using /usr/local/rvm/gems/ruby-2.4.1

rvm use 2.4.1 --default
Using /usr/local/rvm/gems/ruby-2.4.1

十二、刪除舊版本的ruby

rvm remove 2.0.0p648
ruby-2.0.0p648 - #already gone
Using /usr/local/rvm/gems/ruby-2.4.1

1三、查看最終版本

ruby --version
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]

再次執行

gem install /usr/local/redis-cluster/redis-4.1.2.gem

十、使用 gem 安裝 redis

gem install redis

十一、進入目錄 /usr/local/redis-cluster/ 建立啓動腳本

cd /usr/local/redis-cluster/
vim start-all.sh

寫入以下內容:

/node1/bin/redis-server redis.conf
/node2/bin/redis-server redis.conf
/node3/bin/redis-server redis.conf
/node4/bin/redis-server redis.conf
/node5/bin/redis-server redis.conf
/node6/bin/redis-server redis.conf

對啓動腳本賦權

chmod 777 start-all.sh 

十二、啓動腳本

./start-all.sh

1三、查看啓動情況

ps -ef | grep redis
ps aux | grep redis
netstat -lntp

1四、建立集羣

 ./redis-cli --cluster create 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 127.0.0.1:7006 --cluster-replicas 1

redis僞集羣搭建(親測無坑)

說明:

(1)Performing hash slots allocation on 6 nodes... # 表明一共有6個節點

(2)Using 3 masters: # 有三個主節點 分別是端口 700一、700二、7003

(3)Adding replica 127.0.0.1:7005 to 127.0.0.1:7001 # 端口7005的節點是端口7001節點的從節點,以此類推

(4)M: 014d11a25cb3ea6999bd8a3237ad27252b324c54  127.0.0.1:7001 # 前面內一串是ID惟一標識

(5)slots:0-5460 (5461 slots) master # 表明當前節點的哈希槽爲0-5460,主節點纔有哈希槽,redis集羣中內置了16384(0-16383)個哈希槽。
(6)yes  #開始搭建


3、客戶端測試

連接redis的客戶端:redis-cli

cd /usr/local/redis-cluster/

複製腳本文件  redis-cli

cp /opt/redis/redis-5.0.5/src/redis-cli /usr/local/redis-cluster/
ll
./redis-cli -h 127.0.0.1 -p 7001 -c
./redis-cli -h 127.0.0.1 -p 7005 -c

查看集羣信息

127.0.0.1:7001> cluster info

查看節點信息

128.127.0.0.1:7001> cluster nodes
127.0.0.1:7001> info replication
127.0.0.1:7001> info server

說明:

(1)-h 對應的IP地址,不寫的話默認就是本機。

(2)-p 對應的是集羣中指定實例的端口。

(3)-c 這是必須的,表明集羣啓動。

(4)[9189]、[4998] 是經過算法計算出的當前key的哈希槽,每一個節點都有對應的哈希槽範圍,存儲的的數據是根據key的哈希槽存儲到對應節點。

相關文章
相關標籤/搜索