中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis中怎么搭建一個橫向集群

發布時間:2021-06-18 15:42:15 來源:億速云 閱讀:179 作者:Leah 欄目:大數據

本篇文章為大家展示了Redis中怎么搭建一個橫向集群,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1.概述:

在redis3.0版本之前只支持主從復制(縱向集群),縱向集群解決了讀的壓力,但是寫的操作只能在主庫上完成。redis3.0版本之后包括3.0可以支持橫向集群,本文章嘗試介紹redis的橫向集群以及如何在真實環境中搭建。

2.實現原理:

Redis集群中有16384個哈希槽,而每一個key都是哈希槽的一部分,所以只要計算出key的哈希槽,就知道這個key對應16384中的哪一個,計算原理是對key的CRC16取模16384,而Redis群集中的每個節點都負責哈希槽的子集,有多少個節點就把哈希槽分成幾片。比如有A,B,C 3個節點集群,哈希槽的分配大概如下:

  • 節點A包含從0到5500的哈希槽。

  • 節點B包含從5501到11000的哈希槽。

  • 節點C包含從11001到16383的哈希槽。

比如我的key是name計算出的 哈希槽 是 100,100這個哈希槽在節點A,所以自然的redis就把這個值存到節點A的redis服務器上,獲取數據也是先計算key的哈希槽,然后再去對應的節點獲取數據,從而讀寫都實現了集群。

3.搭建橫向集群

實例基礎環境:centos7系統 ,redis版本5.0.6(目前的最新版本)

實例情況:創建6個redis服務器,3臺主庫3臺從庫,即每臺主庫分配一臺從庫,如果主庫發生故障,則從庫可以進行故障轉移升級為主庫

1.下載安裝redis

# 下載redis安裝包到 /usr/local/src目錄下
cd /usr/local/src
# 各個版本下載地址:http://download.redis.io/releases
wget http://download.redis.io/releases/redis-5.0.6.tar.gz
# 解壓
tar zxf redis-5.0.6.tar.gz
# 進入redis-5.0.6的源碼目錄
cd redis-5.0.6/
# 編譯redis
make

把新建六個目錄,用來存放6臺redis服務和對應的配置文件

cd /data
mkdir redis1 redis2 redis3 redis4 redis5 redis6

把編譯后的redis-server和redis.conf文件分別復制到新建的六個redis目錄

cd /usr/local/src/redis-5.0.6
cp redis.conf /data/redis1
cp redis.conf /data/redis2
cp redis.conf /data/redis3
cp redis.conf /data/redis4
cp redis.conf /data/redis5
cp redis.conf /data/redis6
cd /usr/local/src/redis-5.0.6/src
cp redis-server /data/redis1
cp redis-server /data/redis2
cp redis-server /data/redis3
cp redis-server /data/redis4
cp redis-server /data/redis5
cp redis-server /data/redis6

分別配置這六臺服務器的redis.conf

需要修改的參數如下:

port 每臺服務器對外的端口這里我為每臺分別分配如下 6001 6002 6003 6004 6005 6006

cluster-enabled yes 打開這個配置且值為yes,指定redis為集群節點啟動

cluster-config-file nodes.conf 指定節點配置文件

daemonize yes 讓每臺redis以守護態啟動(后臺啟動)

分別修改每臺redis服務器的配置文件

cd /data/redis1
vim redis.conf

redis1服務器redis.conf配置修改如下

port 6001
daemonize yes
pidfile /var/run/redis_6001.pid
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000

redis2服務器redis.conf配置修改如下

port 6002
daemonize yes
pidfile /var/run/redis_6002.pid
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000

redis3,redis4,redis5,redis6以此類推修改對應的配置文件

配置好六臺服務器之后,分別啟動六臺redis服務器

cd /data/redis1
./redis-server redis.conf
cd /data/redis2
./redis-server redis.conf
cd /data/redis3
./redis-server redis.conf
cd /data/redis4
./redis-server redis.conf
cd /data/redis5
./redis-server redis.conf
cd /data/redis6
./redis-server redis.conf

這時我們六臺服務全部啟動了,下一步就是將這六臺服務器創建成一個集群

使用redis-cli創建集群

cd /usr/local/src/redis-5.0.6/src/
./redis-cli --cluster create \
127.0.0.1:6001 \
127.0.0.1:6002 \
127.0.0.1:6003 \
127.0.0.1:6004 \
127.0.0.1:6005 \
127.0.0.1:6006 \
--cluster-replicas 1

此時控制臺提示輸入yes,輸入yes回車即可

Redis中怎么搭建一個橫向集群

出現以下說明創建成功!

Redis中怎么搭建一個橫向集群

創建集群完畢后會提示All 16384 slots covered

接下來用命令行工具測試:

[root@VM_0_10_centos src]# ./redis-cli -c -p 6001
127.0.0.1:6001> set name liuhaizhuang
-> Redirected to slot [5798] located at 127.0.0.1:6002
OK
127.0.0.1:6002> get name
"liuhaizhuang"
127.0.0.1:6002>

我們發現從6001這個服務器保存的數據,系統自動分配到6002這個服務器中了,說明橫向集群搭建完畢!

2.集群配置參數說明

# 如果是yes,則啟用Redis Cluster支持,如果是no,則redis會獨立啟動
cluster-enabled <yes/no>
# 這個文件是redis集群節點每次發生更改時都會自動持久保存集群配置的文件,用戶不可編輯
cluster-config-file <filename>
# Redis群集節點不可用的最長時間(如果在設置的時間內,不當做失敗處理)
cluster-node-timeout <milliseconds>
# 如果設置為0,則從服務器將始終嘗試對主服務器進行故障轉移,而不管主服務器和從服務器之間的鏈接保持斷開狀態的時間長短,如果該值為正,則將最大斷開時間計算為節點超時值乘以此選項提供的系數
cluster-slave-validity-factor <factor>
# 一個主機將保持連接的最小數量的從機
cluster-migration-barrier <count>
#如果設置為yes,默認情況下,如果某個節點未覆蓋一定比例的key空間,集群將停止接受寫入。如果該選項設置為no,即使僅可以處理有關key子集的請求,群集仍將提供查詢。
cluster-require-full-coverage <yes/no>

上述內容就是Redis中怎么搭建一個橫向集群,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方山县| 若尔盖县| 布尔津县| 米林县| 牡丹江市| 蕉岭县| 茌平县| 贵溪市| 甘南县| 大庆市| 轮台县| 乌兰察布市| 中牟县| 徐汇区| 德令哈市| 天峨县| 平陆县| 沧源| 沐川县| 玉田县| 镇原县| 漠河县| 曲周县| 蕲春县| 沛县| 将乐县| 加查县| 文化| 宜阳县| 惠水县| 辽宁省| 宁都县| 恩施市| 共和县| 敖汉旗| 都江堰市| 融水| 台州市| 湖北省| 龙口市| 台山市|