redis集羣配置及介紹

1. redis集羣的介紹

Redis 集羣是一個提供在多個Redis節點之間共享數據的程序集。

Redis 集羣並不支持同時處理多個鍵的 Redis 命令,因爲這需要在多個節點間移動數據,這樣會降低redis集羣的性能,在高負載的情況下可能會導致不可預料的錯誤。

Redis 集羣通過分區來提供一定程度的可用性,即使集羣中有一部分節點失效或者無法進行通訊, 集羣也可以繼續處理命令請求。

在這裏插入圖片描述

Redis 集羣的優勢:

  1. 緩存永不宕機:啓動集羣,永遠讓集羣的一部分起作用。主節點失效了子節點能迅速改變角色成爲主節點,整個集羣的部分節點失敗或者不可達的情況下能夠繼續處理命令;

  2. 迅速恢復數據:持久化數據,能在宕機後迅速解決數據丟失的問題;

  3. Redis可以使用所有機器的內存,變相擴展性能

  4. 使Redis的計算能力通過簡單地增加服務器得到成倍提升,Redis的網絡帶寬也會隨着計算機和網卡的增加而成倍增長

  5. Redis集羣沒有中心節點,不會因爲某個節點成爲整個集羣的性能瓶頸;

  6. 異步處理數據,實現快速讀寫。

2. 搭建redis集羣

2.1 下載redis安裝包並解壓

# 下載安裝包
cd /export/softwares
wget http://download.redis.io/releases/redis-3.2.8.tar.gz

# 解壓
cd /export/softwares
tar -zxvf redis-3.2.8.tar.gz -C ../servers/

2.2 安裝C程序運行環境

yum -y install gcc-c++

2.3 安裝tcl

Tcl(tool command language)是一種簡單的腳本語言,主要使用於發佈命令給一 些互交程序如文本編輯器調試器shell。它有一個簡單的語法 和很強可擴充性,Tcl可以創建新的過程以增強其內建命令的能力。

其次,Tcl是一個庫包,可以被嵌入應用程序,Tcl的庫包含了一個分析器、用於執行內建命令的例程和可以使你擴充(定義新的 過程)的庫函數。應用程序可以產生Tcl命令並執行,命令可以由用戶產生,也可以從用戶接口的一個輸入中讀取(按鈕或菜單等)。但Tcl庫收到命令後將它分解並執行內建的命令,經常會產生遞歸的調用

yum  -y  install  tcl

2.4 編譯redis

# 編譯
make MALLOC=libc 或 make
# 測試編譯是否完成
make test 或者 make install

2.5 創建redis不同實例的配置並修改

# 創建對應文件夾
cd /export/redis-3.2.8
mkdir -p /export/redis-3.2.8/clusters/7001
mkdir -p /export/redis-3.2.8/clusters/7002
mkdir -p /export/redis-3.2.8/clusters/7003
mkdir -p /export/redis-3.2.8/clusters/7004
mkdir -p /export/redis-3.2.8/clusters/7005
mkdir -p /export/redis-3.2.8/clusters/7006

mkdir -p /export/redis-3.2.8/logs
mkdir -p /export/redis-3.2.8/redisdata/7001
mkdir -p /export/redis-3.2.8/redisdata/7002
mkdir -p /export/redis-3.2.8/redisdata/7003
mkdir -p /export/redis-3.2.8/redisdata/7004
mkdir -p /export/redis-3.2.8/redisdata/7005
mkdir -p /export/redis-3.2.8/redisdata/7006

將配置文件複製到對應文件夾,然後修改配置

# 對應主機
bind hadoop1
# 端口,7001配置爲7001,7002配置爲7002,以此類推
port 7001
cluster-enabled yes
# 不同文件夾不同
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes
# 同上,7001的地方都要對應不同文件夾進行修改
pidfile /var/run/redis_7001.pid
logfile "/export/redis-3.2.8/logs/7001.log"
dir /export/redis-3.2.8/redisdata/7001

2.6 啓動redis

cd  /export/servers/redis-3.2.8
src/redis-server cluster/7001/redis.conf
src/redis-server cluster/7002/redis.conf
src/redis-server cluster/7003/redis.conf
src/redis-server cluster/7004/redis.conf
src/redis-server cluster/7005/redis.conf
src/redis-server cluster/7006/redis.conf

redis啓動沒有任何提醒,可以用ps -ef | grep redis查看是否啓動

在這裏插入圖片描述

2.7 安裝ruby運行環境

redis集羣啓動需要藉助ruby環境

yum install ruby
yum install rubygems
gem install redis

如果出現ruby版本報錯,按照以下方法解決:

在這裏插入圖片描述

# 安裝rvm,rvm是ruby version Manager,ruby版本管理器
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -L https://get.rvm.io | bash -s stable
# 查找 rvm路徑
find / -name rvm -print
source /usr/local/rvm/scripts/rvm

# 查看ruby版本
rvm list known

# 安裝高版本ruby
rvm install 2.3.3
# 使用高版本ruby
rvm use 2.3.3
# 將ruby設爲默認
rvm use 2.3.3 --default
# 卸載舊版本ruby
rvm remove 2.0.0

如果是curl報錯可以參考curl表https://www.cnblogs.com/xueyou/p/curl.html

curl命令可以參考http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

但是。。。。我的虛擬機一直訪問不了https://get.rvm.io,本地瀏覽器可以訪問,發現瀏覽器訪問https://get.rvm.io後跳轉到https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer。然鵝。。虛擬機還是訪問不了這個網站,我就徹底放棄使用curl -L https://get.rvm.io | bash -s stable,而是選擇了一種古老的方法。。在虛擬機上創建一個.sh文件,然後將網頁上的內容複製。。再執行cat test.sh | bash -s stable

2.8 創建redis集羣

cd /export/redis-3.2.8
gem install redis
src/redis-trib.rb create --replicas 1 192.168.100.100:7001 192.168.100.100:7002 192.168.100.100:7003 192.168.100.100:7004 192.168.100.100:7005 192.168.100.100:7006

2.9 連接redis客戶端

src/redis-cli -h hadoop1 -c -p 7001
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章