日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis集群搭建-韩国庆

發布時間:2024/10/12 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis集群搭建-韩国庆 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

認真一步一步搭建下來,就可以成功....

Redis-cluster集群架構講解

redis集群專業名詞稱之為Redis-cluster,redis集群是從3.0版本以后才有的概念,也就是說在3.0之前我們是搭建不了集群的。

如下圖,使我們redis集群搭建圖,那么這里redis集群中沒有一個準確的入口,也就是說沒有一個指認的可連接的redis服務,因為任何一個節點都可以作為入口連接進去。那么每個redis服務之間都可以進行通訊的,來檢查對方的狀態。?

redis沒有準確的指認入口,任意一個redis服務都可以作為入口進行連接,那么我們考慮一個問題:我們需要知道每一個redis服務的工作狀態,比如如果某一個redis服務突然停止,我們如何知道呢?

投票容錯

?
如上圖,每一個redis服務之間是否可以通訊及采用ping,pong的機制進行互相打招呼。當ping一個服務時,該服務相應pong,則代碼服務通訊,反之不可以通訊。?
投票容錯:只要有一半的redis服務認為當前某一個redis服務有問題,則判定該服務有問題存在。?
如:黃色redis服務ping下紅色redis服務,發現紅色redis服務沒有給它響應,則黃色redis就告訴其他redis服務,你們也連接下紅色redis服務,如果其它redis服務超過一半連接不上紅色redis服務,則紅色redis有問題存在。

redis集群故障分解

同學們注意,上面講述如果其中有一臺redis服務有問題,我們認為這臺redis服務有問題存在。那么對于整個redis集群角度來看,有兩種情況存在:?
1.如果集群中redis服務存在故障,切已做了主從復制,那么訪問的時候會訪問redis從服務,集群正常運行。?
2.redis集群中沒有做主從備份,如果其中有一臺redis服務故障掛掉,那么很遺憾,整個集群則都不能使用。

為什么有redis服務掛掉,整個服務就不能使用呢??
?
通過上圖我們了解到,redis-cluster中在一個名此叫,這個槽起到什么做作用呢??
:在集群中的作用是為每一個redis節點合理的分配資源,達到負載均衡的作用。redis集群中物理節點是從0~16383,則一共16384個槽,除以幾點的個數就是每個節點所承載槽的個數。?
根據什么來把數據放在哪個槽里呢?如下則是原理?

上述我們了解槽的概念,更進一步的看下槽在每個節點的分布圖?

問題:最多分布幾個redis服務呢?最多也就是16384個,每一個槽對應一個服務。

搭建集群

3個節點是因為redis要保證一半以上才能決策哪一臺redis有問題,容錯。?
那么為了保證每一臺節點的穩定性,我們還要給每一個節點備份一臺節點。所以這里要有6個節點。

我們運行6臺服務器,基本上老師電腦掛掉,每一個更好的主機。所以老師在這里演示使用redis的實例,每一個實例其實就是一臺redis服務。這種搭建比分布在6臺虛擬機上更難,因為還要考慮每個redis服務端口號的問題。

我們在這里6端口號方便好記所以設置的區間是 7001-7006

搭建redis服務

如果現有的虛擬機上正在運行著redis服務,需要停止到。 停止redis服務命令

?
1.redis的實例?
redis實例在老師電腦上/usr/local/bin下,這里是redis服務的實例。?

2.在local目錄下創建一個文件

3.把local/bin 拷貝紙 redis-cluster目錄下,再命名redis01?
cp -r bin redis-cluster/redis01

4.切換至redis-cluster/redis01目錄下?
一個干凈的redis服務時沒有dump.rdb文件的,這個是redis數據的快照?
rm -r dump.rdb

5.編輯redis01下的redis.conf文件?
修改端口號

6.redis如果要搭建集群,需要開啟一個集群設置。?

修改bind的ip地址?
?
每個redis節點都要修改當前主機ip

7.拷貝此實例?
?
拷貝redis01---redis06,拷貝5次

8.拷貝如下所示?

9.修改端口號?
集群設置我們復制的時候都更改了,但是端口號我們需要修改獨自的。?
所以去每一個redisX里的redis.conf下修改即可

10.啟動redis?
這里我們可以寫一個文件,里面寫著每一個redis服務啟動的命令?
?
如上創建一個文件,那么該文件是保存在了/local/redis-cluster/這個目錄下?

保存退出編輯?

11.文件權限?
此時該文件startRedis.sh文件還不能執行,因為權限不夠。?

添加可執行權限 chmod +x startRedis.sh

查看如下?

12.進入到/usr/local/redis-cluster下啟動腳本文件

./startRedis.sh


如上啟動成功。

并且以cluster(集群模式)模式進行啟動?

確認是否有端口號7001--7006服務開啟,如下命令

ps aux|grep redis

安裝ruby

?
redis-cluster安裝前需要安裝ruby環境,搭建集群需要使用到官方提供的ruby腳本。

安裝ruby的環境需要依賴于環境,首先安裝ruby環境

  • yum -y install ruby
  • yum -y install rubygems
  • 需要安裝ruby腳本環境?
    老師提供了ruby腳本包,在資料中-->redis--->redis-3.0.0.gem包

    1.安裝redis-3.0.0.gem

  • gem install redis-3.0.0.gem
  • 2.進入到/usr/local/redis-4.0.5/src解壓文件下?
    可以找一個redis-trib.rb,這個是腳本文件。后綴.rb就是ruby的縮寫

    3.拷貝一份至/usr/local/redis-cluster下?

    4.查看?

    5.運行腳本?
    ruby包裝好了,環境也裝好了,那么這個腳本就可以運行了。使用ruby來搭建redis集群?
    啟動命令如下

  • ./redis-trib.rb create --replicas 1 123.14.0.223:7001 123.14.0.223:7002 123.14.0.223:7003 123.14.0.223:7004 123.14.0.223:7005 123.14.0.223:7006
  • replicas: 1 表示每個redis服務只有1臺備份機。

    連接集群

    redis給我提供了客戶端,那么我們如何連接redis服務呢?redis服務集群特點是每一個節點都可以作為入口,備份節點也可以作為主機。

  • redis01/redis-cli -h "123.14.0.223" -p 7001 -c
  • 操作數據存入對應的槽?

    集群的幾個簡單命令?
    cluster info 查看集群狀態?

    cluster nodes 查看該集群節點數?

    客戶端連接集群(單機版和集群版)

    單機版

    集群版

    ?
    ?
    ?

    轉載于:https://www.cnblogs.com/hanguoqing/p/10244715.html

    總結

    以上是生活随笔為你收集整理的Redis集群搭建-韩国庆的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。