若是部署到多臺電腦,就跟普通的集羣同樣;由於Redis是單線程處理的,多核CPU也只能使用一個核,html
因此部署在同一臺電腦上,經過運行多個Redis實例組成集羣,而後能提升CPU的利用率。node
須要4個部件:git
Redis、Ruby語言運行環境、Redis的Ruby驅動redis-xxxx.gem、建立Redis集羣的工具redis-trib.rbgithub
安裝Redis,並運行3個實例(Redis集羣須要至少3個以上節點,低於3個沒法建立);redis
使用redis-trib.rb工具來建立Redis集羣,因爲該文件是用ruby語言寫的,因此須要安裝Ruby開發環境,以及驅動redis-xxxx.gemruby
其GitHub路徑以下:https://github.com/MSOpenTech/redis/releases/app
Redis提供msi和zip格式的下載文件,這裏下載zip格式 3.0.504版本ide
將下載到的Redis-x64-3.0.504.zip解壓便可,爲了方便使用,建議放在盤符根目錄下,並修改目錄名爲Redis,如:C:\Redis 或者D:\Redis工具
經過配置文件來啓動3個不一樣的Redis實例,因爲Redis默認端口爲6379,因此這裏使用了6380、638一、6382來運行3個Redis實例。ui
注意:爲了不沒必要要的錯誤,配置文件儘可能保存爲utf8格式,而且不要包含註釋;
配置文件中如下兩種保存日誌的方式(保存在文件中、保存到System Log中)請根據需求選擇其中一種便可:
loglevel notice #日誌的記錄級別,notice是適合生產環境的 logfile "D:/Redis/Logs/redis6380_log.txt" #指定log的保持路徑,默認是建立在Redis安裝目錄下,若是有子目錄須要手動建立,如此處的Logs目錄
syslog-enabled yes #是否使用系統日誌
syslog-ident redis6380 #在系統日誌的標識名
這裏使用了保存在文件中的方式,因此先在Redis目錄D:/Redis下新建Logs文件夾
redis.6380.conf 內容以下:
port 6380 loglevel notice logfile "D:/Redis/Logs/redis6380_log.txt" appendonly yes appendfilename "appendonly.6380.aof" cluster-enabled yes cluster-config-file nodes.6380.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
redis.6381.conf 內容以下:
port 6381 loglevel notice logfile "D:/Redis/Logs/redis6381_log.txt" appendonly yes appendfilename "appendonly.6381.aof" cluster-enabled yes cluster-config-file nodes.6381.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
redis.6382.conf 內容以下:
port 6382 loglevel notice logfile "D:/Redis/Logs/redis6382_log.txt" appendonly yes appendfilename "appendonly.6382.aof" cluster-enabled yes cluster-config-file nodes.6382.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
配置內容的解釋以下:
1 port 6380 #端口號 2 loglevel notice #日誌的記錄級別,notice是適合生產環境的 3 logfile "Logs/redis6380_log.txt" #指定log的保持路徑,默認是建立在Redis安裝目錄下,若是有子目錄須要手動建立,如此處的Logs目錄 4 syslog-enabled yes #是否使用系統日誌 5 syslog-ident redis6380 #在系統日誌的標識名 6 appendonly yes #數據的保存爲aof格式 7 appendfilename "appendonly.6380.aof" #數據保存文件 8 cluster-enabled yes #是否開啓集羣 9 cluster-config-file nodes.6380.conf 10 cluster-node-timeout 15000 11 cluster-slave-validity-factor 10 12 cluster-migration-barrier 1 13 cluster-require-full-coverage yes
將上述配置文件保存到Redis目錄下,並使用這些配置文件安裝3個redis服務,命令以下:
注意:redis.6380.conf等配置文件最好使用完整路徑,避免重啓Redis集羣出現問題,博主的安裝目錄爲D:/Redis
D:/Redis/redis-server.exe --service-install D:/Redis/redis.6380.conf --service-name redis6380 D:/Redis/redis-server.exe --service-install D:/Redis/redis.6381.conf --service-name redis6381 D:/Redis/redis-server.exe --service-install D:/Redis/redis.6382.conf --service-name redis6382
啓動這3個服務,命令以下:
D:/Redis/redis-server.exe --service-start --service-name Redis6380 D:/Redis/redis-server.exe --service-start --service-name Redis6381 D:/Redis/redis-server.exe --service-start --service-name Redis6382
執行結果:
http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe
下載後,雙擊安裝便可,一樣,爲了操做方便,也是建議安裝在盤符根目錄下,如: C:\Ruby22-x64 ,安裝時這裏選中後兩個選項,
意思是將ruby添加到系統的環境變量中,在cmd命令中能直接使用ruby的命令
https://rubygems.org/gems/redis/versions/3.2.2
注意:下載在頁面右下角相關鏈接一項中
安裝該驅動,命令以下:
gem install --local path_to_gem/filename.gem
實際操做以下:
https://raw.githubusercontent.com/MSOpenTech/redis/3.0/src/redis-trib.rb
打開該連接若是沒有下載,而是打開一個頁面,那麼將該頁面保存爲redis-trib.rb
建議保存到Redis的目錄下。
注意:由於redis-trib.rb是ruby代碼,必須用ruby來打開,若redis-trib.rb沒法識別,須要手動選擇該文件的打開方式:
**選擇ruby爲的打開方式後,redis-trib.rb的logo都會發生改變,以下圖:
CMD下切換到Redis目錄,使用redis-trib.rb來建立Redis集羣:
redis-trib.rb create --replicas 0 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382
執行結果:
當出現提示時,須要手動輸入yes,輸入後,當出現如下內容,說明已經建立了Redis集羣
檢驗是否真的建立成功,輸入如下命令:
redis-trib.rb check 127.0.0.1:6380
出現如下信息,說明建立的Redis集羣是沒問題的
使用Redis客戶端Redis-cli.exe來查看數據記錄數,以及集羣相關信息
D:/Redis/redis-cli.exe -c -p 6380
-c 表示 cluster
-p 表示 port 端口號
輸入dbsize查詢 記錄總數
dbsize
或者一次輸入完整命令:
D:/Redis/redis-cli.exe -c -p 6380 dbsize
結果以下:
輸入cluster info能夠從客戶端的查看集羣的信息:
cluster info
結果以下: