欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

什么是redis集群配置與管理-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)什么是redis集群配置與管理,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作與策劃設(shè)計(jì),汕尾網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:汕尾等地區(qū)。汕尾做網(wǎng)站價(jià)格咨詢:13518219792

Redis在3.0版本以后開(kāi)始支持集群,經(jīng)過(guò)中間幾個(gè)版本的不斷更新優(yōu)化,最新的版本集群功能已經(jīng)非常完善。本文簡(jiǎn)單介紹一下Redis集群搭建的過(guò)程和配置方法,redis版本是5.0.4,操作系統(tǒng)是中標(biāo)麒麟(和Centos內(nèi)核基本一致)。

1、Redis集群原理

Redis 集群是一個(gè)提供在多個(gè)Redis間節(jié)點(diǎn)間共享數(shù)據(jù)的程序集,集群節(jié)點(diǎn)共同構(gòu)建了一個(gè)去中心化的網(wǎng)絡(luò),集群中的每個(gè)節(jié)點(diǎn)擁有平等的身份,節(jié)點(diǎn)各自保存各自的數(shù)據(jù)和集群狀態(tài)。節(jié)點(diǎn)之間采用Gossip協(xié)議進(jìn)行通信,保證了節(jié)點(diǎn)狀態(tài)的信息同步。

Redis 集群數(shù)據(jù)通過(guò)分區(qū)來(lái)進(jìn)行管理,每個(gè)節(jié)點(diǎn)保存集群數(shù)據(jù)的一個(gè)子集。數(shù)據(jù)的分配采用一種叫做哈希槽(hash slot)的方式來(lái)分配,和傳統(tǒng)的一致性哈希不太相同。Redis 集群有16384個(gè)哈希槽,每個(gè)key通過(guò)CRC16校驗(yàn)后對(duì)16384取模來(lái)決定放置哪個(gè)槽。

為了使在部分節(jié)點(diǎn)失敗或者大部分節(jié)點(diǎn)無(wú)法通信的情況下集群仍然可用,集群使用了主從復(fù)制模型。讀取數(shù)據(jù)時(shí),根據(jù)一致性哈希算法到對(duì)應(yīng)的 master 節(jié)點(diǎn)獲取數(shù)據(jù),如果master 掛掉之后,會(huì)啟動(dòng)一個(gè)對(duì)應(yīng)的 salve 節(jié)點(diǎn)來(lái)充當(dāng) master 。

2、環(huán)境準(zhǔn)備

這里準(zhǔn)備在一臺(tái)PC上搭建一個(gè)3主3從的redis集群。

在/opt/目錄下新建一個(gè)文件夾rediscluster,用來(lái)存放集群節(jié)點(diǎn)目錄。

然后分別新建server10、server11、server20、server21、server30、server31 6個(gè)文件夾準(zhǔn)備6個(gè)redis節(jié)點(diǎn),這些節(jié)點(diǎn)分別使用6379、6380、6381、6382、6383、6384端口,以server10為例配置如下:

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

其他節(jié)點(diǎn)只需修改端口和文件名,依次按此進(jìn)行配置即可,配置完成后啟動(dòng)這些節(jié)點(diǎn)。

[root@localhost rediscluster]# ./server10/redis-server ./server10/redis.conf &
[root@localhost rediscluster]# ./server11/redis-server ./server11/redis.conf &
[root@localhost rediscluster]# ./server20/redis-server ./server20/redis.conf &
[root@localhost rediscluster]# ./server21/redis-server ./server21/redis.conf &
[root@localhost rediscluster]# ./server30/redis-server ./server30/redis.conf &
[root@localhost rediscluster]# ./server31/redis-server ./server31/redis.conf &

查看啟動(dòng)狀態(tài):

[root@localhost rediscluster]# ps -ef|grep redis
root     11842     1  0 15:03 ?        00:00:12 ./server10/redis-server 127.0.0.1:6379 [cluster]
root     11950     1  0 15:03 ?        00:00:13 ./server11/redis-server 127.0.0.1:6380 [cluster]
root     12074     1  0 15:04 ?        00:00:13 ./server20/redis-server 127.0.0.1:6381 [cluster]
root     12181     1  0 15:04 ?        00:00:12 ./server21/redis-server 127.0.0.1:6382 [cluster]
root     12297     1  0 15:04 ?        00:00:12 ./server30/redis-server 127.0.0.1:6383 [cluster]
root     12404     1  0 15:04 ?        00:00:12 ./server31/redis-server 127.0.0.1:6384 [cluster]

3、集群配置

非常簡(jiǎn)單: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

其中-replicas 1表示每個(gè)主節(jié)點(diǎn)1個(gè)從節(jié)點(diǎn)

[root@localhost rediscluster]# ./server10/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
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 127.0.0.1:6383 to 127.0.0.1:6379
Adding replica 127.0.0.1:6384 to 127.0.0.1:6380
Adding replica 127.0.0.1:6382 to 127.0.0.1:6381
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: efa84a74525749b8ea20585074dda81b852e9c29 127.0.0.1:6379
   slots:[0-5460] (5461 slots) master
M: 63e20c75984e493892265ddd2a441c81bcdc575c 127.0.0.1:6380
   slots:[5461-10922] (5462 slots) master
M: d9a79ed6204e558b2fcee78ea05218b4de006acd 127.0.0.1:6381
   slots:[10923-16383] (5461 slots) master
S: 0469ec03b43e27dc2b7b4eb24de34e10969e3adf 127.0.0.1:6382
   replicates 63e20c75984e493892265ddd2a441c81bcdc575c
S: fd8ea61503e7c9b6e950894c0da41aed3ee19e7e 127.0.0.1:6383
   replicates d9a79ed6204e558b2fcee78ea05218b4de006acd
S: ddebc3ca467d15c7d25125e4e16bcc5576a13699 127.0.0.1:6384
   replicates efa84a74525749b8ea20585074dda81b852e9c29
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
....
>>> Performing Cluster Check (using node 127.0.0.1:6379)
M: efa84a74525749b8ea20585074dda81b852e9c29 127.0.0.1:6379
   slots:[0-5460] (5461 slots) master
additional replica(s)
M: d9a79ed6204e558b2fcee78ea05218b4de006acd 127.0.0.1:6381
   slots:[10923-16383] (5461 slots) master
additional replica(s)
S: 0469ec03b43e27dc2b7b4eb24de34e10969e3adf 127.0.0.1:6382
   slots: (0 slots) slave
   replicates 63e20c75984e493892265ddd2a441c81bcdc575c
S: ddebc3ca467d15c7d25125e4e16bcc5576a13699 127.0.0.1:6384
   slots: (0 slots) slave
   replicates efa84a74525749b8ea20585074dda81b852e9c29
M: 63e20c75984e493892265ddd2a441c81bcdc575c 127.0.0.1:6380
   slots:[5461-10922] (5462 slots) master
additional replica(s)
S: fd8ea61503e7c9b6e950894c0da41aed3ee19e7e 127.0.0.1:6383
   slots: (0 slots) slave
   replicates d9a79ed6204e558b2fcee78ea05218b4de006acd
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

創(chuàng)建完成,主從節(jié)點(diǎn)分配如下:

Adding replica 127.0.0.1:6383 to 127.0.0.1:6379
Adding replica 127.0.0.1:6384 to 127.0.0.1:6380
Adding replica 127.0.0.1:6382 to 127.0.0.1:6381

4、集群測(cè)試

通過(guò)6379客戶端連接后進(jìn)行測(cè)試,發(fā)現(xiàn)轉(zhuǎn)向了6381:

[root@localhost rediscluster]# ./server10/redis-cli -h 127.0.0.1 -c -p 6379
127.0.0.1:6379> set foo bar
-> Redirected to slot [12182] located at 127.0.0.1:6381
OK
127.0.0.1:6381> get foo
"bar"

在6381上連接測(cè)試:

[root@localhost rediscluster]# ./server10/redis-cli -h 127.0.0.1 -c -p 6381
127.0.0.1:6381> get foo
"bar"

結(jié)果相同,說(shuō)明集群配置正常。

5、集群節(jié)點(diǎn)擴(kuò)容

在rediscluster目錄下在新增兩個(gè)目錄server40和server41,新增2個(gè)redis節(jié)點(diǎn)配置6385和6386兩個(gè)端口。將6385作為新增的master節(jié)點(diǎn),6386作為從節(jié)點(diǎn),然后啟動(dòng)節(jié)點(diǎn):

[root@localhost server41]# ps -ef|grep redis
root     11842     1  0 15:03 ?        00:00:18 ./server10/redis-server 127.0.0.1:6379 [cluster]
root     11950     1  0 15:03 ?        00:00:19 ./server11/redis-server 127.0.0.1:6380 [cluster]
root     12074     1  0 15:04 ?        00:00:18 ./server20/redis-server 127.0.0.1:6381 [cluster]
root     12181     1  0 15:04 ?        00:00:18 ./server21/redis-server 127.0.0.1:6382 [cluster]
root     12297     1  0 15:04 ?        00:00:17 ./server30/redis-server 127.0.0.1:6383 [cluster]
root     12404     1  0 15:04 ?        00:00:18 ./server31/redis-server 127.0.0.1:6384 [cluster]
root     30563     1  0 18:01 ?        00:00:00 ./redis-server 127.0.0.1:6385 [cluster]
root     30582     1  0 18:02 ?        00:00:00 ./redis-server 127.0.0.1:6386 [cluster]

添加主節(jié)點(diǎn):

[root@localhost server41]# ./redis-cli --cluster add-node 127.0.0.1:6385 127.0.0.1:6379
>>> Adding node 127.0.0.1:6385 to cluster 127.0.0.1:6379
>>> Performing Cluster Check (using node 127.0.0.1:6379)
M: efa84a74525749b8ea20585074dda81b852e9c29 127.0.0.1:6379
   slots:[0-5460] (5461 slots) master
additional replica(s)
M: d9a79ed6204e558b2fcee78ea05218b4de006acd 127.0.0.1:6381
   slots:[10923-16383] (5461 slots) master
additional replica(s)
S: 0469ec03b43e27dc2b7b4eb24de34e10969e3adf 127.0.0.1:6382
   slots: (0 slots) slave
   replicates 63e20c75984e493892265ddd2a441c81bcdc575c
S: ddebc3ca467d15c7d25125e4e16bcc5576a13699 127.0.0.1:6384
   slots: (0 slots) slave
   replicates efa84a74525749b8ea20585074dda81b852e9c29
M: 63e20c75984e493892265ddd2a441c81bcdc575c 127.0.0.1:6380
   slots:[5461-10922] (5462 slots) master
additional replica(s)
S: fd8ea61503e7c9b6e950894c0da41aed3ee19e7e 127.0.0.1:6383
   slots: (0 slots) slave
   replicates d9a79ed6204e558b2fcee78ea05218b4de006acd
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 127.0.0.1:6385 to make it join the cluster.
[OK] New node added correctly.

查看節(jié)點(diǎn)列表:

[root@localhost server41]# ./redis-cli 
127.0.0.1:6379> cluster nodes
22e8a8e97d6f7cc7d627e577a986384d4d181a4f 127.0.0.1:6385@16385 master - 0 1555064037664 0 connected
efa84a74525749b8ea20585074dda81b852e9c29 127.0.0.1:6379@16379 myself,master - 0 1555064036000 1 connected 0-5460
d9a79ed6204e558b2fcee78ea05218b4de006acd 127.0.0.1:6381@16381 master - 0 1555064038666 3 connected 10923-16383
0469ec03b43e27dc2b7b4eb24de34e10969e3adf 127.0.0.1:6382@16382 slave 63e20c75984e493892265ddd2a441c81bcdc575c 0 1555064035000 4 connected
ddebc3ca467d15c7d25125e4e16bcc5576a13699 127.0.0.1:6384@16384 slave efa84a74525749b8ea20585074dda81b852e9c29 0 1555064037000 6 connected
63e20c75984e493892265ddd2a441c81bcdc575c 127.0.0.1:6380@16380 master - 0 1555064037000 2 connected 5461-10922
fd8ea61503e7c9b6e950894c0da41aed3ee19e7e 127.0.0.1:6383@16383 slave d9a79ed6204e558b2fcee78ea05218b4de006acd 0 1555064037000 5 connected

添加從節(jié)點(diǎn):

[root@localhost server41]# ./redis-cli --cluster add-node 127.0.0.1:6386 127.0.0.1:6379 --cluster-slave --cluster-master-id 22e8a8e97d6f7cc7d627e577a986384d4d181a4f
>>> Adding node 127.0.0.1:6386 to cluster 127.0.0.1:6379
>>> Performing Cluster Check (using node 127.0.0.1:6379)
M: efa84a74525749b8ea20585074dda81b852e9c29 127.0.0.1:6379
   slots:[0-5460] (5461 slots) master
additional replica(s)
M: 22e8a8e97d6f7cc7d627e577a986384d4d181a4f 127.0.0.1:6385
   slots: (0 slots) master
M: d9a79ed6204e558b2fcee78ea05218b4de006acd 127.0.0.1:6381
   slots:[10923-16383] (5461 slots) master
additional replica(s)
S: 0469ec03b43e27dc2b7b4eb24de34e10969e3adf 127.0.0.1:6382
   slots: (0 slots) slave
   replicates 63e20c75984e493892265ddd2a441c81bcdc575c
S: ddebc3ca467d15c7d25125e4e16bcc5576a13699 127.0.0.1:6384
   slots: (0 slots) slave
   replicates efa84a74525749b8ea20585074dda81b852e9c29
M: 63e20c75984e493892265ddd2a441c81bcdc575c 127.0.0.1:6380
   slots:[5461-10922] (5462 slots) master
additional replica(s)
S: fd8ea61503e7c9b6e950894c0da41aed3ee19e7e 127.0.0.1:6383
   slots: (0 slots) slave
   replicates d9a79ed6204e558b2fcee78ea05218b4de006acd
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 127.0.0.1:6386 to make it join the cluster.
Waiting for the cluster to join

>>> Configure node as replica of 127.0.0.1:6385.
[OK] New node added correctly.

添加成功后,為新節(jié)點(diǎn)分配數(shù)據(jù):

[root@localhost server41]# ./redis-cli --cluster reshard 127.0.0.1:6385

How many slots do you want to move (from 1 to 16384)? 1000
What is the receiving node ID? 22e8a8e97d6f7cc7d627e577a986384d4d181a4f
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1: all

這樣就新增完畢了,可以通過(guò)cluster nodes命令查看一下新增后的slot分布

127.0.0.1:6379> cluster nodes
22e8a8e97d6f7cc7d627e577a986384d4d181a4f 127.0.0.1:6385@16385 master - 0 1555064706000 7 connected 0-332 5461-5794 10923-11255
efa84a74525749b8ea20585074dda81b852e9c29 127.0.0.1:6379@16379 myself,master - 0 1555064707000 1 connected 333-5460
d9a79ed6204e558b2fcee78ea05218b4de006acd 127.0.0.1:6381@16381 master - 0 1555064705000 3 connected 11256-16383
7c24e205301b38caa1ff3cd8b270a1ceb7249a2e 127.0.0.1:6386@16386 slave 22e8a8e97d6f7cc7d627e577a986384d4d181a4f 0 1555064705000 7 connected
0469ec03b43e27dc2b7b4eb24de34e10969e3adf 127.0.0.1:6382@16382 slave 63e20c75984e493892265ddd2a441c81bcdc575c 0 1555064707000 4 connected
ddebc3ca467d15c7d25125e4e16bcc5576a13699 127.0.0.1:6384@16384 slave efa84a74525749b8ea20585074dda81b852e9c29 0 1555064707236 6 connected
63e20c75984e493892265ddd2a441c81bcdc575c 127.0.0.1:6380@16380 master - 0 1555064706000 2 connected 5795-10922
fd8ea61503e7c9b6e950894c0da41aed3ee19e7e 127.0.0.1:6383@16383 slave d9a79ed6204e558b2fcee78ea05218b4de006acd 0 1555064708238 5 connected

6、集群節(jié)點(diǎn)縮減

縮減節(jié)點(diǎn)時(shí)先縮減從節(jié)點(diǎn):

[root@localhost server41]# ./redis-cli --cluster del-node 127.0.0.1:6386 7c24e205301b38caa1ff3cd8b270a1ceb7249a2e
>>> Removing node 7c24e205301b38caa1ff3cd8b270a1ceb7249a2e from cluster 127.0.0.1:6386
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

然后進(jìn)行主節(jié)點(diǎn)slot轉(zhuǎn)移:

[root@localhost server41]# ./redis-cli --cluster reshard 127.0.0.1:6385How many slots do you want to move (from 1 to 16384)? 1000What is the receiving node ID? efa84a74525749b8ea20585074dda81b852e9c29  //要移到的節(jié)點(diǎn)Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1: 22e8a8e97d6f7cc7d627e577a986384d4d181a4f   //要?jiǎng)h除的主節(jié)點(diǎn)Source node #2: done

最后在縮減主節(jié)點(diǎn)

[root@localhost server41]# ./redis-cli --cluster reshard 127.0.0.1:6385

How many slots do you want to move (from 1 to 16384)? 1000
What is the receiving node ID? efa84a74525749b8ea20585074dda81b852e9c29  //要移到的節(jié)點(diǎn)
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1: 22e8a8e97d6f7cc7d627e577a986384d4d181a4f   //要?jiǎng)h除的主節(jié)點(diǎn)
Source node #2: done

以上就是什么是redis集群配置與管理,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道。

本文標(biāo)題:什么是redis集群配置與管理-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)源:http://chinadenli.net/article18/dhppgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、虛擬主機(jī)、標(biāo)簽優(yōu)化、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站設(shè)計(jì)公司、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)