1. 程式人生 > >Linux 實現 Redis 單機叢集模式

Linux 實現 Redis 單機叢集模式

本文在虛擬機器中完成

環境和基礎

單機測試使用了橋接模式,多機需要其他配置,虛擬機器聯網參考 VMware 中的僅主機模式、Nat 模式、橋接模式 掃雷
需要一些 linux 基本操作知識,比如 新建資料夾,檔案,編輯檔案內容,移動檔案

過程
  • 下載和安裝 redis-下載後有解壓,注意路徑最好安轉在 /usr下,便於集中管理
# wget http://download.redis.io/releases/redis-3.2.9.tar.gz
# tar xzf redis-3.2.9.tar.gz
# cd redis-3.2.9 # make
  • 啟動 redis服務端-預設是非後臺啟動
# src/redis-server
  • 啟動 redis-客戶端
# src/redis-cli

  • 開始配置叢集,-先配置6個啟動檔案
此時6個啟動檔案相互沒有關係建立和src同級別目錄,
cluster/conf
在conf 中新建6個檔案 7000.conf、7001.conf、7002.conf、7003.conf、7004.conf、7005.conf
內容,bind是IP,你redis 在那臺伺服器就寫什麼,如果只是本機就寫127.0.0.1,port和檔名保持一致,下面是 7000.conf 的內容
port 7000     #埠
bind 127.0.0.1  #host
pidfile ./redis_7000.pid   #配置檔名字-啟動會自動生成
daemonize yes              #是否後臺執行,yes是
cluster-enabled yes        #是否開啟叢集模式
cluster-config-file nodes_7000.conf  #叢集配置節點檔案
cluster-node-timeout 15000           # 叢集節點請求超時時間
appendonly yes                       #是否啟用操作日誌記錄
  • 啟動這6個例項
./src/redis-server cluster/conf/7000.conf
./src/redis-server cluster/conf/7001.conf
./src/redis-server cluster/conf/7002.conf
./src/redis-server cluster/conf/7003.conf
./src/redis-server cluster/conf/7004.conf
./src/redis-server cluster/conf/7005.conf
  • 檢視在執行的redis
ps -ef | grep redis

  • 需要安裝 ruby 工具

如果 執行
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis
報錯,則先安裝 ruby

# sudo yum install curl
# curl -L get.rvm.io | bash -s stable 
# source /usr/local/rvm/scripts/rvm
# rvm list known
//選擇最新的 2.4.1 安裝
# rvm install 2.4.1
# gem install redis
# yum install -y rubygems

  • 啟動叢集
啟動叢集-來到 redis 的安裝目錄下
–replicas 1表示為叢集的master節點建立1個副本。那麼6個例項裡,有三個master,有三個是slave。
# cd redis-3.2.9
# ruby ./src/redis-trib.rb create --replicas 1 127.0.0.1:7000 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

  • 執行效果
登陸叢集客戶端 -c 表示以叢集登陸(實現叢集效果)
[[email protected] ~]# cd /usr/redis3.29/redis-3.2.9
[[email protected] redis-3.2.9]# ./src/redis-cli -h 127.0.0.1 -p 7002 -c
127.0.0.1:7002> set name jecket
-> Redirected to slot [5798] located at 127.0.0.1:7001
OK
127.0.0.1:7001> 
[[email protected] redis-3.2.9]# ./src/redis-cli -h 127.0.0.1 -p 7003 -c
127.0.0.1:7003> get name
-> Redirected to slot [5798] located at 127.0.0.1:7001
"jecket"
參考連結