內容要點:
一、Redis Cluster(Redis集羣)簡介:
二、集羣搭建需要的環境:
三、部署集羣:
一、Redis Cluster(Redis集羣)簡介:
(1)edis是一個開源的key value存儲系統,受到了廣大互聯網公司的青睞。redis3.0版本之前只支持單例模式,在3.0版本及以後才支持集羣,這裏我搭建用的是最新的版本 redis-5.0.7;
(2)redis集羣採用P2P模式,是完全去中心化的,不存在中心節點或者代理節點;
(3)redis集羣是沒有統一的入口的,客戶端(client)連接集羣的時候連接集羣中的任意節點(node)即可,集羣內部的節點是相互通信的(PING-PONG機制),每個節點都是一個redis實例。
二、集羣搭建需要的環境:
(1)Redis集羣至少需要3個節點,因爲投票容錯機制要求超過半數節點認爲某個節點掛了該節點纔是掛了,所以2個節點無法構成集羣。
(2)要保證集羣的高可用,需要每個節點都有從節點,也就是備份節點,所以Redis集羣至少需要6臺服務器。
(3)安裝ruby
三、部署集羣:
爲了節省資源,這邊準備了兩臺虛擬機,各自安裝三個網卡,這樣總共就是六個網卡,也就是同時運行6個 redis 實例。
角色 | IP地址 |
redis1 | 192.168.220.131 |
redis2 | 192.168.220.164 |
redis3 | 192.168.220.165 |
redis4 | 192.168.220.135 |
redis5 | 192.168.220.166 |
redis6 | 192.168.220.167 |
第一步:先都安裝好 redis 服務
第二步:修改配置文件,所有節點配置一樣
vim /etc/redis/6379.conf 1、首先要註釋掉 bind 項: //redis 中 bind 選項默認監聽所有網卡 2、做如下操作: protected-mode no //關閉保護模式 port 6379 //開啓監聽端口 daemonize yes //以獨立進程啓動 cluster-enabled yes //開啓羣集功能 cluster-config-file nodes-6379.conf //羣集名稱文件位置 cluster-node-timeout 15000 //羣集超時時間設置 appendonly yes //開啓aof持久化
(1)重啓服務:
/etc/init.d/redis_6379 restart
(2)重啓過後,此時在 /var/lib/redis/6379 這個目錄下,就會多出兩個文件:
appendonly.aof :持久化文件
nodes-6379.conf :節點首次啓動生成的配置文件
第三步:這步只需要在 master 主服務器中操作
1、導入 key 文件:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
2、安裝 rvm :
curl -sSL https://get.rvm.io | bash -s stable
3、執行環境變量:
source /etc/profile.d/rvm.sh
rvm list known //列出 Ruby 可安裝的版本
4、安裝 Ruby2.4.1 版本
rvm install 2.4.1
5、使用 Ruby2.4.1 版本
rvm use 2.4.1
ruby -v //查看當前 Ruby2.4.1 版本
6、再次安裝 Redis
gem install redis
7、重新啓動 redis
/etc/init.d/redis_6379 restart
第四步:創建羣集
六個實例分爲三組,每組一主一從,–replicas 1 表示每組一個從,下面交互的時候,需要輸入 yes 纔可以創建。
使用源碼解壓目錄中的 redis-trib.rb 工具創建羣集。
redis-cli --cluster create 192.168.220.131:6379 192.168.220.164:6379 192.168.220.165:6379 192.168.220.135:6379 192.168.220.166:6379 192.168.220.167:6379 --cluster-replicas 1
第五步:驗證:
(1)隨意登錄一臺 redis,創建一對鍵值:
redis-cli -h 192.168.220.164 -p 6379 //連接164這臺主機
(2)此時,我們連接登錄到另外一臺主機上,查看鍵名:
redis-cli -h 192.168.220.131 -p 6379 //連接到131這臺主機上