真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網(wǎng)站設計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的烏翠網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

1.概述:

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

2.實現(xiàn)原理:

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

  • 節(jié)點A包含從0到5500的哈希槽。

  • 節(jié)點B包含從5501到11000的哈希槽。

  • 節(jié)點C包含從11001到16383的哈希槽。

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

3.搭建橫向集群

實例基礎環(huán)境:centos7系統(tǒng) ,redis版本5.0.6(目前的最新版本)

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

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

需要修改的參數(shù)如下:

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

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

cluster-config-file nodes.conf 指定節(jié)點配置文件

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

分別修改每臺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

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

使用redis-cli創(chuàng)建集群

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中怎么搭建一個橫向集群

出現(xiàn)以下說明創(chuàng)建成功!

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

創(chuàng)建集群完畢后會提示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>

我們發(fā)現(xiàn)從6001這個服務器保存的數(shù)據(jù),系統(tǒng)自動分配到6002這個服務器中了,說明橫向集群搭建完畢!

2.集群配置參數(shù)說明

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

上述內(nèi)容就是Redis中怎么搭建一個橫向集群,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章標題:Redis中怎么搭建一個橫向集群
文章起源:http://weahome.cn/article/pddghh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部