redis-cluster公式ドキュメント
10363 ワード
Redis cluster tutorial
Redis
Redis Cluster, 。
, , redis cluster
Redis Cluster .
: Redis 3.0 :
Redis Cluster
Redis Cluster 101
Redis Cluster Redis , Redis nodes.
Redis Cluster ,
, ( master )
,Redis ?
,
Redis Cluster TCP ports
Redis Cluster 2 TCP , Redis TCP port clients,
6379, 1000 , 16379
2 Cluster bus, node-to-node 2
Cluster ,
cliet cluster bus port , normal Redis command port
, Redis cluster nodes
cluster bus , 10000
Redis cluster , :
client ( 6379) ,
( keys )
(client port 10000)
Redis
Redis Cluster hashing, , key hash slot
16384 hash slots Redis Cluster, key hash slot
192.168.137.4:7004> CLUSTER nodes
bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 192.168.137.4:7005@17005 master - 0 1585427745845 24 connected 5461-10922
1b83e27acd5235726aea44702526a8ca0ede9a48 192.168.137.2:7000@17000 slave 9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 0 1585427744837 26 connected
3c6510bd29af80703ae7c0be5a5884caaa60cd4e 192.168.137.2:7001@17001 slave a7287834bc7db37249614d23e06ed8f9a6c7b3d3 0 1585427746348 14 connected
191d7306b81ffa85b5837898562eb6bf1479122c 192.168.137.3:7002@17002 slave,fail bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 1585427709565 1585427709532 24 connected
a7287834bc7db37249614d23e06ed8f9a6c7b3d3 192.168.137.4:7004@17004 myself,master - 0 1585427744000 14 connected 10923-16383
9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 192.168.137.3:7003@17003 master,fail - 1585427709565 1585427709532 26 connected 0-5460
0 16383
Redis cluster hash slots , cluster 3 :
Node A contains hash slots from 0 to 5500.
Node B contains hash slots from 5501 to 11000.
Node C contains hash slots from 11001 to 16383.
, D hash slots A,B,C D
A hash slots A B C
A
hash slots , , hash slots down
Redis Cluster key keys ( , lua )
。
Redis Cluster master-slave model Redis
,
Redis Cluster master-slave hash slot 1 N
A,B,C , B ,
hash slots 5501-11000 hash slots
( ) slave master,
A,B,C master A1,B1,C1 slaves B
B1 B, B B1 master
B B1
Redis
Redis Cluster 。
Redis Cluster , :
1. MASTER B
2.MASTER B OK
3.MASTER B slaves B1,B2 B3
,B B1B2,B3
Redis
client , B , slave
slaves ( ) master,
, :
Redis Cluster , WAIT , ,
Redis Cluster , slae master
Redis Cluster , client master
6 , A,B,C ,A1,B1,C1 3 3 slaves 。
, Z1
, A, C, A1, B1, C1, B Z1
Z1 B , 。 ,
B1 B1 master , Z1 B
Z1 B slave master
master
, node timeout
, master , 。
Redis Cluster configuration parameters
。 , Redis Cluster redis.conf file.
,
cluster-enabled yes
cluster-enabled : yes, Redis Cluster Redis instance
cluster-config-file nodes.conf
cluster-config-file : , ,
Redis Cluster cluster ( , )
。
, ,
cluster-node-timeout :
Redis Cluster ,
master slaves 。
, ,
cluster-slave-validity-factor :
0, slave master,
Master slave 。
,
slave, master 。
, 5 , 10
slave master 50 master
, 0 Redis Cluster master
slave , 。
cluster-migration-barrier : slaves master
Creating and using a Redis Cluster
Redis Cluster
:
Redis Cluster
, Redis instances cluster mode
clusters redis
redis Cluster
REDIS :
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
node1:/root/cluster/7001#netstat -na | grep 700
tcp 0 0 192.168.137.2:7000 0.0.0.0:* LISTEN
tcp 0 0 192.168.137.2:7001 0.0.0.0:* LISTEN
tcp 0 0 192.168.137.2:17000 0.0.0.0:* LISTEN
tcp 0 0 192.168.137.2:17001 0.0.0.0:* LISTEN
, cluster-enabled 。
nodes.conf
, Redis Cluster instances ,
, 3 master 。 6
3 masters 3 slaves
, ,
mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005
redis.conf file, 7000 7005
cd 7000
../redis-server ./redis.conf
node1:/opt/redis/data/7000#ls
appendonly.aof dump.rdb nodes.conf
node1:/opt/redis/data/7000#cat nodes.conf
9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 192.168.137.3:7003@17003 master,fail - 1585496423812 1585496423812 26 connected 0-5460
3c6510bd29af80703ae7c0be5a5884caaa60cd4e 192.168.137.2:7001@17001 slave a7287834bc7db37249614d23e06ed8f9a6c7b3d3 0 1585496430857 14 connected
a7287834bc7db37249614d23e06ed8f9a6c7b3d3 192.168.137.4:7004@17004 master,fail? - 1585496423838 1585496423812 14 disconnected 10923-16383
1b83e27acd5235726aea44702526a8ca0ede9a48 192.168.137.2:7000@17000 myself,slave 9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 0 1585496430000 23 connected
bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 192.168.137.4:7005@17005 master,fail? - 1585496423838 1585496423812 24 disconnected 5461-10922
191d7306b81ffa85b5837898562eb6bf1479122c 192.168.137.3:7002@17002 slave,fail bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 1585496423812 1585496423812 24 connected
vars currentEpoch 27 lastVoteEpoch 24
Creating the cluster
, :
Redis 5, Redis Cluster command line utility
Redis 3 4, redis-trib.rb ,
scr , redis gem redis-trib.
gem install redis
, , redis 5 redis-cli
redis-trib in Redis 3 and 4.
redis-cli,
Redis cli Redis 5 , :
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 \
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 \
--cluster-replicas 1
Using redis-trib.rb for Redis 4 or 3 type:
./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 \
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
, 。
--cluster-replicas 1 slave master
3 3 cluster
Redis-cli , yes
,
:
: , tab open
, ( ) ,
:
master :
$ redis-cli -p 7000 cluster nodes | grep master
3e3a6cb0d9a9a87168e266b0a0b24026c0aae3f0 127.0.0.1:7001 master - 0 1385482984082 0 connected 5960-10921
2938205e12de373867bf38f1ca29d31d0ddb3e46 127.0.0.1:7002 master - 0 1385482983582 0 connected 11423-16383
97a3a64667477371c4479320d683e4c8db5858b1 :0 myself,master - 0 0 0 connected 0-5959 10922-11422
node1:/root#redis-cli -h 192.168.137.2 -p 7000 cluster nodes | grep master
9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 192.168.137.3:7003@17003 master - 0 1585502413836 26 connected 0-5460
a7287834bc7db37249614d23e06ed8f9a6c7b3d3 192.168.137.4:7004@17004 master - 0 1585502412324 14 connected 10923-16383
bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 192.168.137.4:7005@17005 master - 0 1585502414342 24 connected 5461-10922
7000,7001 7002 , crash 7002 DEBUG SEGFAULT command:
node1:/root#redis-cli -h 192.168.137.2 -p 7000 cluster nodes | grep master
9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 192.168.137.3:7003@17003 master - 0 1585502413836 26 connected 0-5460
a7287834bc7db37249614d23e06ed8f9a6c7b3d3 192.168.137.4:7004@17004 master - 0 1585502412324 14 connected 10923-16383
bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 192.168.137.4:7005@17005 master - 0 1585502414342 24 connected 5461-10922
node1:/root#
node1:/root#
node1:/root#
node1:/root#redis-cli -h 192.168.137.2 -p 7000 cluster nodes | grep master
9809b72ec290d73d99a3e1b0d12c4c7bf8583c45 192.168.137.3:7003@17003 master,fail - 1585502528397 1585502525874 26 disconnected
a7287834bc7db37249614d23e06ed8f9a6c7b3d3 192.168.137.4:7004@17004 master - 0 1585502532945 14 connected 10923-16383
1b83e27acd5235726aea44702526a8ca0ede9a48 192.168.137.2:7000@17000 myself,master - 0 1585502530000 29 connected 0-5460
bf0edaba80c4f31e9b56101572d2a5ccc8aa145c 192.168.137.4:7005@17005 master - 0 1585502532541 24 connected 5461-10922
, 578 577 ,
。
( , cluster slave)
Manual failover
: