久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何離線安裝Redis集群

176次閱讀
沒有評論

共計 6598 個字符,預計需要花費 17 分鐘才能閱讀完成。

這篇文章主要介紹了如何離線安裝 Redis 集群,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

一、通過原生命令安裝 Redis 集群(僅做理解 Redis 集群原理使用)

  1. 配置開啟所需要的 Redis 節點

因為這里只是做一個簡單的 Redis 集群原理演示,所以假設此時 Redis 服務已經安裝完畢,在 config 文件夾下創建六個 redis.conf 配置文件,分別為 redis-7000.conf、redis-7001.conf、redis-7002.conf、redis-7003.conf、redis-7004.conf、redis-7005.conf。其內容如下:

port ${port}
daemonize yes
dir  /opt/redis/redis/data/ 
dbfilename  dump-${port}.rdb 
logfile  ${port}.log 
cluster-enabled yes // 開啟節點的集群功能
cluster-config-file nodes-${port}.conf
cluster-require-full-coverage no
cluster-node-timeout 15000

依次啟動六個 redis 后臺服務

redis-server redis-7000.conf
redis-server redis-7001.conf
redis-server redis-7002.conf
redis-server redis-7003.conf
redis-server redis-7004.conf
redis-server redis-7005.conf

ps -ef | grep redis 查看啟動情況:

2. 通過集群命令 meet 完成節點之間的相互通信

meet:cluster meet ip port
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7001
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7002
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7003
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7004
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7005

通過端口為 7000 的節點,其他的節點也可以相互感知到對方的存在,然后每兩個節點之間都會通信。

驗證:登錄端口號為 7000 節點以后,分別輸入 cluster nodes 和 cluster info 命令。

3. 指派槽

完成了節點之間的通信以后,就需要給每個主節點分配虛擬槽,一共存在 16384 個 slot,redis 節點之間互相知道哪個槽在哪個節點上,如果數據訪問到了不屬于自己的槽的 redis,redis 會告訴數據應該去訪問哪個 redis

指派槽的命令:cluster addslots slot[slot…]

redis-cli -h 127.0.0.1 -p 7000 cluster addslots {0…5641}
redis-cli -h 127.0.0.1 -p 7001 cluster addslots {5642…10922}
redis-cli -h 127.0.0.1 -p 7002 cluster addslots {10923…16383}

在這里發現使用 addslots 只能一個一個輸入,感覺非常扯,使用數組的方式 redis 會報錯,用網上的解決辦法是將大括號里的 三個點改為兩個點,我試了試不行的,如果有什么好的解決辦法可以提供一下。

4. 配置節點的主從關系

cluster replicate node-id
redis-cli -h 127.0.0.1 -p 7003 cluster replicate ${node-id-7000}
redis-cli -h 127.0.0.1 -p 7004 cluster replicate ${node-id-7001}
redis-cli -h 127.0.0.1 -p 7005 cluster replicate ${node-id-7002}

到此通過原生命令安裝 Redis 集群就已經完成了,中間的步驟存在問題,無法分配 slots, 但是可以幫助簡單的理解一下由 Redis 的單節點到 Redis 的集群都需要做什么工作。

  二、通過 Ruby 離線安裝 Redis 集群

1. 安裝環境以及安裝包說明

 系統:Centos7(安裝的時候選擇安裝了 gcc)
安裝包:redis-4.0.6.tar.gz //redis  的安裝包
 ruby-2.5.6.tar.gz // 集群搭建需要 Ruby 環境
 rubygems-3.0.6.zip //redis 集群需要的 ruby 插件,rubygems 是 ruby 的一個包管理工具,通過 rubygems 安裝 redis-3.2.2.gem
 zlib-1.2.11.tar.gz // 可能缺少的基礎環境 zlib
 openssl-1.0.2t.tar.gz // 可能缺少的基礎環境 openssl

2. 安裝步驟

(1) 解壓編譯 redis

mkdir /usr/local/redis // 創建 redis 工作目錄
cp redis-4.0.6.tar.gz /usr/local/redis // 將 redis 的安裝包拷貝到 redis 目錄下
cd /usr/local/redis // 進去 redis 文件下
tar -vxf redis-4.0.6.tar.gz // 解壓縮
ln -s redis-4.0.6 redis // 建立軟連接
cd redis // 進入 redis 目錄下
make   make install // 編譯安裝 redis

  (2) 創建集群目錄

cd /usr/local/redis
mkdir redis_cluster // 在 redis 安裝目錄下創建 redis_cluster 目錄
mkdir redis700{0,1,2,3,4,5}// 批量創建六個 redis 節點工作目錄,三主三從。

(3) 配置 redis.conf

cd /usr/local/redis/redis_cluster // 進去集群工作目錄

vim redis.conf // 創建 redis.conf 文件并添加一下內容

port 7000 // 配置集群的端口
bind  本機的 IP // 這里的默認配置是 127.0.0.1 改為內網 ip。daemonize yes // 允許 redis 在后臺運行
pidfile /var/run/redis-7000.pid // 改成和端口一致
cluster-enabled yes //  開啟集群   把注釋去掉
cluster-config-file node-7000.conf // 集群的配置,和端口一致
cluster-node-timeout 15000 //  請求超時,默認為 15 秒
appendonly yes // aof 日志開啟,有需要就開啟,每一次寫操作都會記錄一條日志。

將 redis.conf 分別 copy 到六個節點的文件下

cp redis.conf redis7000/ // 將配置文件拷貝到 redis7000 節點的工作目錄下
cp redis.conf redis7001/
cp redis.conf redis7002/
cp redis.conf redis7003/
cp redis.conf redis7004/
cp redis.conf redis7005/

因為配置文件是根據 7000 端口模本的配置寫的,所以除了 redis7000 目錄下的 redis.conf, 其他工作目錄下的配置文件都需要將文件內容中的端口號修改為對應的工作目錄的端口號。

(4) 啟動服務

cd /usr/local/redis/redis_cluster
依次啟動所有節點
redis-server redis7000/redis.conf
redis-server redis7001/redis.conf
redis-server redis7002/redis.conf
redis-server redis7003/redis.conf
redis-server redis7004/redis.conf
redis-server redis7005/redis.conf

查看啟動情況:ps -ef | grep redis

(5) 安裝 ruby

mkdir /usr/local/ruby // 創建 ruby 工作目錄
cp ruby-2.5.6.tar.gz /usr/local/ruby // 將安裝包拷貝到該目錄下
cd /usr/local/ruby // 進入 ruby 工作目錄
tar -vxf ruby-2.5.6.tar.gz //  解壓縮
cd ruby-2.5.6/
./configure
make   make install

查看安裝情況:ruby -v

(6) 安裝 rubygems

mkdir /usr/local/rubygems // 創建 rubygems 工作目錄
cp rubygems-3.0.6.zip /usr/local/rubygems // 將安裝包拷貝到該目錄下
cd /usr/local/rubygems // 進入 ruby 工作目錄
unzip rubygems-3.0.6.zip //  解壓縮
cd rubygems-3.0.6/
ruby setup.rb

執行 ruby setup.rb 的時候出現以下錯誤:

解決辦法:缺少了 zlib 包,需要安裝 zlib。

(7) 安裝 zlib

mkdir /usr/local/zlib // 創建 zlib 工作目錄
cp zlib-1.2.11.tar.gz /usr/local/zlib // 將安裝包拷貝到該目錄下
cd /usr/local/zlib // 進入 zlib 工作目錄
tar -vxf zlib-1.2.11.tar.gz //  解壓縮
cd zlib-1.2.11/
./configure --prefix=/usr/local/zlib

make
make install

(8) 編譯 ruby 中的 zlib

cd /usr/local/ruby/ruby-2.5.6/ext/zlib/
ruby extconf.rb

出現以下錯誤信息:

發現原來是要將文件安裝到本地運行庫的里面才行,所有安裝的時候需要額外配置信息。重新執行一下命令:

ruby extconf.rb --with-zlib-include=/usr/local/zlib/include/ --with-zlib-lib=/usr/local/zlib/lib // 會生成一個 Makefile 文件 

繼續下一步:make make install

又出現報錯信息:

如何離線安裝 Redis 集群

這個時候打開 ext/zlib/Makefile 文件,找到下面一行把路徑進行修改一下。

zlib.o: $(top_srcdir)/include/ruby.h 改成:zlib.o: ../../include/ruby.h

如下圖:

如何離線安裝 Redis 集群

修改完成,然后保存, 然后重新:make make install

如何離線安裝 Redis 集群

zlib 的錯誤都解決以后再繼續重新安裝 rubygems。

cd /usr/local/rubygems/rubygems-3.0.6
ruby setup.rb

這次就安裝成功了,如下圖:

如何離線安裝 Redis 集群

(9) 安裝 redis-3.0.0.gem

cp redis-3.0.0.gem /usr/local/redis/redis
cd /usr/local/redis/redis
gem install redis-3.3.0.gem

出現以下錯誤信息:

如何離線安裝 Redis 集群

因為 Redis 集群交互是需要 OpenSSL,所系我們還需要安裝 OpenSSL。

(10) 安裝 openssl

mkdir /usr/local/openssl // 創建 openssl 工作目錄
cp openssl-1.0.2t.tar.gz /usr/local/openssl // 將安裝包拷貝到該目錄下
cd /usr/local/openssl // 進入 openssl 工作目錄
tar -vxf openssl-1.0.2t.tar.gz //  解壓縮
cd openssl-1.0.2t/
./config -fPIC --prefix=/usr/local/openssl enable-shared
./config -t
make   make install

安裝成功:

如何離線安裝 Redis 集群

(11) 編譯 ruby 中的 openssl

cd /usr/local/ruby/ruby-2.5.6/ext/openssl/
ruby extconf.rb --with-openssl-include=/usr/local/openssl/include/ --with-openssl-lib=/usr/local/openssl/lib  此時會生成 Makefile 文件,下面出現的錯誤需要修改本文件
make   make install

出現以下錯誤信息:

如何離線安裝 Redis 集群

解決辦法:vim Makefile 把 Makefile 文件中所有的 $(top_srcdir) 換成 ../.. 注意替換所有

替換完成后,重新進行

make   make install

安裝成功:

如何離線安裝 Redis 集群

安裝成功以后繼續進行第九步的安裝 redis-3.0.0.gem

cd /usr/local/redis/redis/
gem install redis-3.0.0.gem

安裝成功:

如何離線安裝 Redis 集群

到這里 ruby 環境總算是安裝成功了,真是不容易啊,其實 redis cluster 的安裝的主要內容還是上面的 Ruby 環境的安裝配置過程。

(12) 啟動 redis 集群

cd /usr/local/redis/redis/src/

在該目錄下執行命令:

./redis-trib.rb create --replicas 1 192.168.182.132:7000 192.168.182.132:7001 192.168.182.132:7002 192.168.182.132:7003 192.168.182.132:7004 192.168.182.132:7005

如何離線安裝 Redis 集群

輸入 yes

安裝成功:

如何離線安裝 Redis 集群

(13) 驗證集群狀態

以普通方式連接到 7002 端口的節點 redis-cli -p 7002 -h 192.168.182.132

參數說明:-p port 端口 -h host 主機 -c cluster 集群

連接進集群之后 輸入 ping , 如果響應了 pong 表示連接集群成功;

CLUSTER INFO 列出當前節點的信息,CLUSTER NODES 列出當前集群中的節點信息;

如何離線安裝 Redis 集群

執行命令:set hello word

如何離線安裝 Redis 集群

7002 節點報錯,客戶端該數據應該使用 7000 端口的客戶端才能添加 (是因為登錄的時候沒有加 -c)

登錄 7000 端口的客戶端重新 set hello world,添加數據成功 (上次在 7002 中添加 hello world 沒有成功,所以在 7000 中獲取 hello 是沒有內容的)

如何離線安裝 Redis 集群

使用集群方式連接集群 redis-cli -p 7003 -h 192.168.182.132 -c(7003 是 7000 的備機)

查詢 hello:

get hello

如何離線安裝 Redis 集群

重新設置 hello 的值:

set hello java

設置成功:

如何離線安裝 Redis 集群

通過對比發現如果登錄的時候不加 -c(非集群模式登錄,登錄的是單節點), 添加數據時,如果數據的 key 的虛擬槽位沒有在該 redis 上則不能添加成功,即單節點登錄,對 redis 的操作不會進行重定向。

(14) 驗證集群的主從配置

關閉 7002 端口的節點

kill -9 7002redis 節點的 pid

登錄到 7000 端口的節點:

redis-cli -p 7000 -h 192.168.182.132 -c
cluster nodes

CLUSTER NODES 前面的字符串是節點的 id。從這個命令還可以知道哪些節點還活著,哪些節點已經掛了。帶著 fail 的都是已經掛掉的節點。

如何離線安裝 Redis 集群

集群信息顯示 7002 節點已經 down 掉,7005 取代 7002 成為主節點

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“如何離線安裝 Redis 集群”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-04發表,共計6598字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 三原县| 会泽县| 武陟县| 常州市| 吴忠市| 奎屯市| 娱乐| 肃北| 天等县| 龙南县| 鄄城县| 榕江县| 上饶县| 青海省| 天全县| 济宁市| 赞皇县| 义马市| 百色市| 彩票| 家居| 乌海市| 福州市| 平和县| 鄂尔多斯市| 连江县| 文水县| 武邑县| 多伦县| 唐海县| 仪陇县| 福泉市| 长泰县| 太仆寺旗| 合水县| 涪陵区| 乌兰浩特市| 七台河市| 喀喇| 巨野县| 宝鸡市|