叢集架構是一種將多台電腦透過網路連接起來,並採用統一的管理方式,使其對外表現為單一電腦提供服務的方式
叢集的作用:
分散單一伺服器的存取壓力,實現負載平衡
分散單一伺服器的存儲壓力,實現可擴展性
降低單一伺服器宕機帶來業務災難
槽)
在虛擬機器中啟動多個視窗進行叢集搭建示範
主要命令在#修改主命令操作用戶端
執行
redis.conf設定檔
新增以下內容快速複製5分設定檔並取代裡面的連接埠cluster-enabled yes # 启动为节点 cluster-config-file nodes-6379.conf # cluster配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容 cluster-node-timeout 10000 # 节点服务响应超时时间,用于判定该节点是否下线或切换为从节点 cluster-migration-barrier <count> # master连接的slave最小数量登入後複製
[root@localhost conf]# sed "s/6379/6380/g" redis-6379.conf > redis-6380.conf [root@localhost conf]# sed "s/6379/6381/g" redis-6379.conf > redis-6381.conf [root@localhost conf]# sed "s/6379/6382/g" redis-6379.conf > redis-6382.conf [root@localhost conf]# sed "s/6379/6383/g" redis-6379.conf > redis-6383.conf [root@localhost conf]# sed "s/6379/6384/g" redis-6379.conf > redis-6384.conf [root@localhost conf]# sed "s/6379/6385/g" redis-6379.conf > redis-6385.conf
全部執行後可以透過#啟動redis服務叢集cat
指令查看內容確保被修改
# 在第一个窗口执行6379服务 redis-server redis-6379.conf # 在第二个窗口执行6380服务 redis-server redis-6380.conf # 在第三个窗口执行6381服务 redis-server redis-6381.conf # 下面的代码依次类推到6385
ps -ef | grep redis-
#在src目錄下查看執行的結果如下redis-trib.rb
在高版本中已經將啟動操作移到redis-cli
啟動需要兩個下載兩個檔案分別是中
ruby
和
gem# 下载命令也会将gem一起 yum -y install rubygems登入後複製# --cluster create 创建集群 # --cluster-replicas 1 指定集群的内部结构(1代表一个master连接1个slave,2代表一个master连接两个save) # 后面的连接端口按数量实现master连接哪一个slave,1对1,1对2 redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1登入後複製
##查看設定資訊的結果如下
執行
yes指令後的資訊如下
啟動客戶端儲存資料因為使用了叢集部署,所以透過
-c參數可以操作集群,如果不指定的是操作redis指令會提示
-c(error) MOVED 5798 127.0.0.1:6380
注意:
#操作叢集
指定連接埠連接客戶端redis-cli -c # 创建key,通过返回信息可以知道key存储到6380下了 127.0.0.1:6379> set name 123 -> Redirected to slot [5798] located at 127.0.0.1:6380 OK登入後複製
# 连接指定的集群客户端 [root@localhost data]# redis-cli -c -p 6382 # 获取key 127.0.0.1:6382> get name -> Redirected to slot [5798] located at 127.0.0.1:6380 "123" 127.0.0.1:6380>
#查看叢集節點資訊
cluster nodes
進入一個從節點redis,切換其主節點
cluster replicate <master-id>
發現一個新節點,新增主節點
cluster meet ip:port
忽略一個沒有solt的節點
cluster forget <id>
手動故障轉移
cluster failover
新增節點
redis-trib.rb add-node
刪除節點
redis-trib.rb del-node
重新分片
rrreee3、主從下線和主從切換
Ctrl C#再次啟動從機,主機就會重新連接上從機下載服務
##觀察連接的主機情況,主機會在10秒內連接不上從機就會標記從機失敗,其他群集服務會連接上失敗的,其他服務會接收到訊息
如果主機下線了,從機會某槽換位,當主機重新上線的時候,原來的主機就會變成從機
#
以上是Redis7.0部署叢集怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!