一、單機版安裝部署,偽集群只需要操作前1-8步即可,再往下瀏覽找到:二、單機版-偽集群 ?安裝部署繼續(xù)搭建,如需設(shè)置密碼參照第10步
為洪湖等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及洪湖網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)、洪湖網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
1、安裝基本工具
yum install -y?gcc-c++ vim lrzsz wget?
2、創(chuàng)建、進入目錄
mkdir /opt/redis
cd /opt/redis
3、下載
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
4、解壓、查看文件
tar zxvf redis-5.0.5.tar.gz
ll
5、賦權(quán)
chmod 777 -R redis-5.0.5
6、進入目錄,查看文件列表
cd redis-5.0.5
7、編譯、安裝文件?
安裝目錄 ?/usr/local/redis
make install PREFIX=/usr/local/redis
8、進入目錄、查看文件列表
cd /usr/local/redis/
9、控制臺啟動,使用命令./redis-server
bin/redis-server
出現(xiàn)以下結(jié)果證明啟動成功:
10、后臺啟動
(1)從redis解壓目錄復(fù)制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
參數(shù) | 注釋 |
---|---|
port 7000 | 端口7000,7002,7003 |
bind 本機ip | 默認(rèn)ip為127.0.0.1 需要改為其他節(jié)點機器可訪問的ip 否則創(chuàng)建集群時無法訪問對應(yīng)的端口,無法創(chuàng)建集群 |
daemonize yes | redis后臺運行 |
pidfile /var/run/redis_7000.pid | pidfile文件對應(yīng)7000,7001,7002 |
cluster-enabled yes | /開啟集群 把注釋#去掉 |
cluster-config-file nodes_7000.conf | 集群的配置 配置文件首次啟動自動生成 7000,7001,7002 |
cluster-node-timeout 15000 | 請求超時 默認(rèn)15秒,可自行設(shè)置 |
appendonly yes | aof日志開啟 有需要就開啟,它會每次寫操作都記錄一條日志 |
maxmemory 7516192768 | 限制內(nèi)存在7G |
masterauth | 123lxo[9^Ki34&x |
requirepass | 123lxo[9^Ki34&x |
復(fù)制代碼
?接著在另外一臺機器上,操作重復(fù)以上三步,只是把目錄改為7003、7004、7005,對應(yīng)的配置文件也按照這個規(guī)則修改即可
如果意外主機重啟了,往集群中添加新節(jié)點
redis-cli --cluster add-node -a "123lxo[9^Ki34&x" 192.168.47.212:7002 192.168.91.244:7000
添加從節(jié)點
redis-cli --cluster add-node -a "123lxo[9^Ki34&x" 192.168.172.127:7003 192.168.83.158:7003 --cluster-slave
刪除節(jié)點
redis-cli --cluster del-node -a "123lxo[9^Ki34&x" 192.168.47.212:7005 b31ef3b428d20915248b07f1f32694e3caff8a1c
設(shè)置開機自啟
[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 查看狀態(tài)
在任意一個 redis 節(jié)點的主機上執(zhí)行以下命令:
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
列出集群節(jié)點
在任意一個 redis 節(jié)點的主機上執(zhí)行以下命令,列出集群當(dāng)前已知的所有節(jié)點(node),以及這些節(jié)點的相關(guān)信息。
redis-cli -c -h 192.168.68.117 -p 7000 -a ”123lxo[9^Ki34&x” cluster nodes
(3)進入目錄,啟動服務(wù)
cd /usr/local/redis/
bin/redis-server redis.conf
11、查看啟動信息
ps -ef | grep redis
12、基本操作
/usr/local/redis/bin/redis-cli
13、停止服務(wù)
redis-cli -h localhost -p 6379(端口) shutdown //停止服務(wù)
或者 kill -9 (pid)
二、單機版-偽集群 ?安裝部署
1、編譯安裝
第三部分(單機版安裝部署 1 至 8 步)
并把配置文件 ?redis.conf ?從 ?redis ?解壓目錄復(fù)制到 ?redis ?安裝目錄
cp /opt/redis/redis-5.0.5/redis.conf ??/usr/local/redis/
2、安裝基本工具
yum install -y net-tools wget lrzsz vim
3、從redis解壓目錄復(fù)制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
4、創(chuàng)建目錄 ?/usr/local/redis-cluster ?用來存放集群實例
mkdir /usr/local/redis-cluster
進入目錄 ?/usr/local/redis-cluster
cd /usr/local/redis-cluster
5、創(chuàng)建節(jié)點目錄(6個 ? 存放六個實例)?
mkdir node1 node2 node3 node4 node5 node6
6、復(fù)制文件(把編譯安裝好的實例分別復(fù)制到港創(chuàng)建的 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/
7、編輯各自節(jié)點(實例)的配置文件(以node1的配置文件redis.conf為例,其他5個節(jié)點參照node1)
vim node1/redis.conf
(1)daemonize yes ?
(2)port 7001 #(其余節(jié)點:7002、7003、7004、7005、7006)
(3)pidfile /var/run/redis_7001.pid ?#(其余節(jié)點:7002、7003、7004、7005、7006)redis以守護進程方式運行時,系統(tǒng)默認(rèn)會把pid寫入/var/run/redis_7001.pid
(4)cluster-enabled yes ?#此redis實例作為集群的一個節(jié)點
(5)cluster-config-file nodes-7001.conf?#(其余節(jié)點:nodes-7002、3、4、5、6.conf)集群配置文件,系統(tǒng)自動維護,不能人工編輯,主要記錄集群中有哪些節(jié)點,狀態(tài)等參數(shù)
(6)cluster-node-timeout 15000 ?#節(jié)點能夠失聯(lián)的最大時間
分別編輯其余各個節(jié)點的配置文件,修改各自的配置信息,改成各自對應(yīng)的端口(具體過程參照node1)。
8、下載 gem 文件
wget https://rubygems.org/downloads/redis-4.1.2.gem
(下載地址:https://rubygems.org/gems/redis/versions/4.1.2)
賦權(quán)
chmod 777 redis-4.1.2.gem
9、安裝 ruby 環(huán)境
yum install -y ruby
gem install /usr/local/redis-cluster/redis-4.1.2.gem
直接安裝gem文件會提示 ruby 版本太低,需要 ruby 版本在 2.3 以上。
解決方案:
1、安裝基本工具
yum install -y curl ruby
2、查看現(xiàn)有版本
ruby -v
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]
3、獲取rvm.io(發(fā)現(xiàn)安裝失?。?/strong>
curl -L get.rvm.io | bash -s stable
4、根據(jù)提示增加引用
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
或者
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
5、再一次獲取rvm.io(成功!)
curl -L get.rvm.io | bash -s stable
6、查找配置文件
find / -name rvm.sh
/etc/profile.d/rvm.sh
使配置文件生效
source /etc/profile.d/rvm.sh
7、下載RVM依賴
rvm requirements
8、再查看配置文件
find / -name rvm -print
9、查看rvm列表
rvm list known
10、安裝 ?rvm 的 v2.4.1
rvm install 2.4.1
11、配置環(huán)境變量
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
12、刪除舊版本的ruby
rvm remove 2.0.0p648
ruby-2.0.0p648 - #already gone
Using /usr/local/rvm/gems/ruby-2.4.1
13、查看最終版本
ruby --version
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
再次執(zhí)行
gem install /usr/local/redis-cluster/redis-4.1.2.gem
10、使用 gem 安裝 redis
gem install redis
11、進入目錄?/usr/local/redis-cluster/ 創(chuàng)建啟動腳本
cd /usr/local/redis-cluster/
vim start-all.sh
寫入如下內(nèi)容:
/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
對啟動腳本賦權(quán)
chmod 777 start-all.sh?
12、啟動腳本
./start-all.sh
13、查看啟動狀況
ps -ef | grep redis
ps aux | grep redis
netstat -lntp
14、創(chuàng)建集群
?./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
說明:
(1)Performing hash slots allocation on 6 nodes... # 代表一共有6個節(jié)點
(2)Using 3 masters: # 有三個主節(jié)點 分別是端口 7001、7002、7003
(3)Adding replica 127.0.0.1:7005 to 127.0.0.1:7001 # 端口7005的節(jié)點是端口7001節(jié)點的從節(jié)點,以此類推
(4)M: 014d11a25cb3ea6999bd8a3237ad27252b324c54 ?127.0.0.1:7001 # 前面內(nèi)一串是ID唯一標(biāo)識
(5)slots:0-5460 (5461 slots) master # 代表當(dāng)前節(jié)點的哈希槽為0-5460,主節(jié)點才有哈希槽,redis集群中內(nèi)置了16384(0-16383)個哈希槽。
(6)yes ?#開始搭建
三、客戶端測試
鏈接redis的客戶端:redis-cli
cd /usr/local/redis-cluster/
復(fù)制腳本文件 ?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
查看節(jié)點信息
128.127.0.0.1:7001> cluster nodes
127.0.0.1:7001> info replication
127.0.0.1:7001> info server
說明:
(1)-h 對應(yīng)的IP地址,不寫的話默認(rèn)就是本機。
(2)-p 對應(yīng)的是集群中指定實例的端口。
(3)-c 這是必須的,代表集群啟動。
(4)[9189]、[4998] 是通過算法計算出的當(dāng)前key的哈希槽,每個節(jié)點都有對應(yīng)的哈希槽范圍,存儲的的數(shù)據(jù)是根據(jù)key的哈希槽存儲到對應(yīng)節(jié)點。