redis of cluster cluster model

We know from the master copy and the Sentinel stand-alone mode to solve the problem Redis, but Redis there are still two questions:
1) all write operations are concentrated on the main server, the master CPU relatively great pressure
2) whether the primary server or from the server, they are also stored all the data redis, as more and more data, problems may occur with enough memory
after Redis3.0 version supports Cluste cluster, which is made up of multiple master-slave node cluster distributed server farm consisting of a replication, high availability and fragmentation characteristic data for each primary storage slots by dividing the data stored nowhere. redis cluster does not need sentinel sentinel node is removed can complete functionality and failover, each node needs to be set to cluster mode, this mode is not the center of the cluster nodes, horizontally scalable, according to official documents, said linearly extended to 1000 nodes. The following figure below a cluster deployment architecture:

Cluster configuration

[Redis Soft @ k8snode02] $ pwd
/ Home / Redis / Soft
[Redis Soft @ k8snode02] $ LL
Total. 4
drwxrwxr X-2. 6 Redis Redis Cluster On Feb 12 is 03:56
drwxrwxr X-4096. 6 On Feb 12 is 03:53 Redis Redis Redis -3.2.1
[@ k8snode02 Redis Cluster] $ More ./7777/redis.conf | grep -v '^ $'
the include /home/redis/soft/redis-3.2.1/redis.conf
daemonize yes
the LogLevel Notice
logfile " /home/redis/soft/cluster/7777/redis.log "
Port 7777
the bind 0.0.0.0
dir" / Home / Redis / Soft / Cluster / 7777 "
appendOnly yes # persistent use AOF of
appendFileName" appendonly.aof "
appendfsync everysec
maxmemory 100 000 000 # set the maximum memory 100M
cluster-Enabled yes # Enable the cluster mode
cluster-node-timeout 15000 # node timeout time of 15 seconds
maxclients 4064 # maximum number of client connections
TCP backlog 0-
Cluster-config-File "/home/redis/soft/cluster/7777/nodes.conf" within a cluster configuration file # automatically generate
the PidFile "/home/redis/soft/cluster/7777/redis.pid"
masterauth "123456"
requirepass "123456"

[Redis @ k8snode02 Cluster] $ More ./8888/redis.conf | grep -v '^ $ '
the include /home/redis/soft/redis-3.2.1/redis.conf
to daemonize Yes
LogLevel Notice
logfile "/home/redis/soft/cluster/8888/redis.log"
Port 8888
the bind 0.0.0.0
the dir "/ Home / Redis / Soft / Cluster / 8888 "
appendOnly yes
appendFileName" appendonly.aof "
appendfsync everysec
maxmemory 100000000
cluster-enabled yes
cluster-node-timeout 15000
maxclients 4064
tcp-backlog 0
cluster-config-file "/home/redis/soft/cluster/8888/nodes.conf"
pidfile "/home/redis/soft/cluster/8888/redis.pid"
masterauth "123456"
requirepass "123456"

[redis@k8snode02 cluster]$
[redis@k8snode02 cluster]$ ll
total 0
drwxrwxr-x 2 redis redis 23 Feb 12 04:10 7777
drwxrwxr-x 2 redis redis 23 Feb 12 04:12 8888
[redis@k8snode02 cluster]$ pwd
/home/redis/soft/cluster
[redis@k8snode02 cluster]$ scp -r * [email protected]:/home/redis/soft/cluster/  #配置文件拷贝到其他机器
The authenticity of host '192.168.23.100 (192.168.23.100)' can't be established.
ECDSA key fingerprint is 64:e7:8c:8d:6a:e1:21:c5:04:78:a1:4e:7a:c3:e3:8d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.23.100' (ECDSA) to the list of known hosts.
[email protected]'s password: 
redis.conf                                                                                     100%  512     0.5KB/s   00:00    
redis.conf                                                                                     100%  512     0.5KB/s   00:00    
[redis@k8snode02 cluster]$ scp -r * [email protected]:/home/redis/soft/cluster/ #配置文件拷贝到其他机器
The authenticity of host '192.168.23.101 (192.168.23.101)' can't be established.
ECDSA key fingerprint is 64:e7:8c:8d:6a:e1:21:c5:04:78:a1:4e:7a:c3:e3:8d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.23.101' (ECDSA) to the list of known hosts.
[email protected]'s password: 
redis.conf                                                                                     100%  512     0.5KB/s   00:00    
redis.conf                                                                                     100%  512     0.5KB/s   00:00    
[redis@k8snode02 cluster]$ 

Start redis service

[redis@k8snode02 src]$ /home/redis/soft/redis-3.2.1/src/redis-server /home/redis/soft/cluster/7777/redis.conf
[redis@k8snode02 src]$ /home/redis/soft/redis-3.2.1/src/redis-server /home/redis/soft/cluster/8888/redis.conf

[repeat k8snode01 @ ~] $ /home/redis/soft/redis-3.2.1/src/redis-server /home/redis/soft/cluster/7777/redis.conf
[repeat k8snode01 @ ~] $ / home / repeat /soft/redis-3.2.1/src/redis-server /home/redis/soft/cluster/8888/redis.conf

[repeat k8smaster @ ~] $ /home/redis/soft/redis-3.2.1/src/redis-server /home/redis/soft/cluster/7777/redis.conf
[repeat k8smaster @ ~] $ / home / repeat /soft/redis-3.2.1/src/redis-server /home/redis/soft/cluster/8888/redis.conf 

Structure into clusters relationship

[Redis @ k8snode02 src] $ ./redis-cli -h 192.168.23.102 -a -p 7777 123456
192.168.23.102:7777> Cluster info #redis isolated instances, there is no relationship between a cluster of them
cluster_state: fail
cluster_slots_assigned: 0
cluster_slots_ok: 0
cluster_slots_pfail: 0
cluster_slots_fail: 0
cluster_known_nodes:. 1
CLUSTER_SIZE: 0
cluster_current_epoch: 0
cluster_my_epoch: 0
cluster_stats_messages_sent: 0
cluster_stats_messages_received: 0
192.168.23.102:7777> Cluster Nodes
72a85ee1b384421e031f59e9e2a24d7eb82fe737: 7777 myself, Master - Connected 0 0 0
192.168 .23.102: 7777>
192.168.23.102:7777>cluster meet 192.168.23.102 8888 # are connected through the command cluster meet other nodes, so that between the cluster nodes associated   
the OK
192.168.23.102:7777> cluster meet 192.168.23.101 8888
the OK
192.168.23.102:7777> cluster meet 192.168.23.101 7777
the OK
192.168.23.102:7777> cluster 192.168.23.100 8888 Meet
the OK
192.168.23.102:7777> cluster 192.168.23.100 7777 Meet
the OK
192.168.23.102:7777> 
192.168.23.102:7777> cluster Nodes # clusters of complete feed configuration
72a85ee1b384421e031f59e9e2a24d7eb82fe737 192.168.23.102 : 7777 myself, Master - Connected. 1 0 0
c1e0f4ede71cdfa94db63fbc8dbc0d03024e598a 192.168.23.101:7777 Master - Connected. 3 0 1,581,500,730,968
Master 192.168.23.100:8888 681b511c9ea52b032b197e8e39dc25e6f9edc8ce - 0. 4 1581500736006 Connected
554fe235bfe4f1f5490bc1c56cc3aff88cb6aa1f 192.168.23.101:8888 Master - 2 0 1,581,500,731,976 Connected
e8c026d7bf2d82e95d9498cf56ad3ac45ab6e6ce 192.168.23.102:8888 Master - 0 0 1581500733991 Connected
584fcfaa343e1777d8a123dc18ed120a44f13422 192.168.23.100:7777 Master -. 5 0 1,581,500,734,998 Connected
192.168. 23.102: 7777> cluster info # Although connecting each node is connected successfully, but can not be used, because no 16384 slots assigned to the cluster node
cluster_state: Fail
cluster_slots_assigned: 0
cluster_slots_ok: 0
cluster_slots_pfail: 0
cluster_slots_fail: 0
cluster_known_nodes:. 6
CLUSTER_SIZE: 0
cluster_current_epoch:. 5
cluster_my_epoch:. 1
cluster_stats_messages_sent:123
cluster_stats_messages_received:123
192.168.23.102:7777> 

Allocation of virtual slot

[redis@k8snode01 src]$ /home/redis/soft/redis-3.2.1/src/redis-cli -h 192.168.23.100 -p 7777 -a 123456 cluster addslots {0..5461}
OK
[redis@k8snode01 src]$ /home/redis/soft/redis-3.2.1/src/redis-cli -h 192.168.23.101 -p 7777 -a 123456 cluster addslots {5462..10922}
OK
[redis@k8snode01 src]$ /home/redis/soft/redis-3.2.1/src/redis-cli -h 192.168.23.102 -p 7777 -a 123456 cluster addslots {10923..16383}
OK
[redis@k8snode01 src]$ 

192.168.23.102:7777> cluster info #槽位分配后,集群状态正常
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:5
cluster_my_epoch:1
cluster_stats_messages_sent:718
cluster_stats_messages_received:718
192.168.23.102:7777> cluster nodes #显示槽位
72a85ee1b384421e031f59e9e2a24d7eb82fe737 192.168.23.102:7777 myself,master - 0 0 1 connected 10923-16383
c1e0f4ede71cdfa94db63fbc8dbc0d03024e598a 192.168.23.101:7777 master - 0 1581501043432 3 connected 5462-10922
681b511c9ea52b032b197e8e39dc25e6f9edc8ce 192.168.23.100:8888 master - 0 1581501041416 4 connected
554fe235bfe4f1f5490bc1c56cc3aff88cb6aa1f 192.168.23.101:8888 master - 0 1581501044441 2 connected
e8c026d7bf2d82e95d9498cf56ad3ac45ab6e6ce 192.168.23.102:8888 master - 0 1581501043431 0 connected
584fcfaa343e1777d8a123dc18ed120a44f13422 192.168.23.100:7777 master - 0 1581501042424 5 connected 0-5461
192.168.23.102:7777>
192.168.23.102:7777> cluster slots #显示槽位
1) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "192.168.23.102"
      2) (integer) 7777
      3) "72a85ee1b384421e031f59e9e2a24d7eb82fe737"
2) 1) (integer) 5462
   2) (integer) 10922
   3) 1) "192.168.23.101"
      2) (integer) 7777
      3) "c1e0f4ede71cdfa94db63fbc8dbc0d03024e598a"
3) 1) (integer) 0
   2) (integer) 5461
   3) 1) "192.168.23.100"
      2) (integer) 7777
      3) "584fcfaa343e1777d8a123dc18ed120a44f13422"
192.168.23.102:7777>

Settings from the main node

[Redis @ k8snode01 src] $ /home/redis/soft/redis-3.2.1/src/redis-cli -h 192.168.23.100 -a -p 8888 123456 Cluster replicate 584fcfaa343e1777d8a123dc18ed120a44f13422 # Sign related master node from
the OK
[Redis @ src k8snode01] $ /home/redis/soft/redis-3.2.1/src/redis-cli -h 192.168.23.101 -a -p 8888 123456 Cluster replicate c1e0f4ede71cdfa94db63fbc8dbc0d03024e598a
the OK
[Redis @ k8snode01 src] $ / Home / Redis / Soft -a -p 8888 -h 192.168.23.102 /redis-3.2.1/src/redis-cli 123456 Cluster replicate 72a85ee1b384421e031f59e9e2a24d7eb82fe737
the OK
[Redis @ k8snode01 src] $ 

192.168.23.102:7777> cluster nodes #主从配置正常
72a85ee1b384421e031f59e9e2a24d7eb82fe737 192.168.23.102:7777 myself,master - 0 0 1 connected 10923-16383
c1e0f4ede71cdfa94db63fbc8dbc0d03024e598a 192.168.23.101:7777 master - 0 1581501321613 3 connected 5462-10922
681b511c9ea52b032b197e8e39dc25e6f9edc8ce 192.168.23.100:8888 slave 584fcfaa343e1777d8a123dc18ed120a44f13422 0 1581501322620 5 connected
554fe235bfe4f1f5490bc1c56cc3aff88cb6aa1f 192.168.23.101:8888 slave c1e0f4ede71cdfa94db63fbc8dbc0d03024e598a 0 1581501316573 3 connected
e8c026d7bf2d82e95d9498cf56ad3ac45ab6e6ce 192.168.23.102:8888 slave 72a85ee1b384421e031f59e9e2a24d7eb82fe737 0 1581501323626 1 connected
584fcfaa343e1777d8a123dc18ed120a44f13422 192.168.23.100:7777 master - 0 1581501319595 5 connected 0-5461
192.168.23.102:7777> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:5
cluster_my_epoch:1
cluster_stats_messages_sent:1318
cluster_stats_messages_received:1318
192.168.23.102:7777> 
192.168.23.102:7777> cluster slots
1) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "192.168.23.102"
      2) (integer) 7777
      3) "72a85ee1b384421e031f59e9e2a24d7eb82fe737"
   4) 1) "192.168.23.102"
      2) (integer) 8888
      3) "e8c026d7bf2d82e95d9498cf56ad3ac45ab6e6ce"
2) 1) (integer) 5462
   2) (integer) 10922
   3) 1) "192.168.23.101"
      2) (integer) 7777
      3) "c1e0f4ede71cdfa94db63fbc8dbc0d03024e598a"
   4) 1) "192.168.23.101"
      2) (integer) 8888
      3) "554fe235bfe4f1f5490bc1c56cc3aff88cb6aa1f"
3) 1) (integer) 0
   2) (integer) 5461
   3) 1) "192.168.23.100"
      2) (integer) 7777
      3) "584fcfaa343e1777d8a123dc18ed120a44f13422"
   4) 1) "192.168.23.100"
      2) (integer) 8888
      3) "681b511c9ea52b032b197e8e39dc25e6f9edc8ce"
192.168.23.102:7777>

Verifying the cluster availability

[Redis @ k8snode02 src] $ ./redis-cli -h 192.168.23.102 -a -p 7777 123456 # ordinary log, can not write, you need to log in with -c cluster operation
192.168.23.102:7777> the SET name zhaiky
(error) MOVED 5798 192.168.23.101:7777
192.168.23.102:7777> 
[Redis @ k8snode02 src] $ ./redis-cli -c -h 192.168.23.102 -a -p 7777 123456
192.168.23.102:7777> the SET name zhaiky
-> Redirected to slot [5798] located block AT 192.168.23.101:7777
the OK
192.168.23.101:7777> GET name
"zhaiky"
192.168.23.101:7777> 
192.168.23.102:7777> Cluster keyslot name
(Integer) 5798
192.168.23.102: 7777> 

Analog Master of downtime

192.168.23.102:7777> Cluster Nodes # current cluster status is normal, wherein the main 192.168.23.101:7777, 192.168.23.101: 8888 to prepare
72a85ee1b384421e031f59e9e2a24d7eb82fe737 192.168.23.102:7777 myself, Master - Connected 10923-16383. 1 0 0
c1e0f4ede71cdfa94db63fbc8dbc0d03024e598a 192.168. 23.101: 7777 Master - 1581505306750 1581505302518 disconnected 5462-10922. 7
681b511c9ea52b032b197e8e39dc25e6f9edc8ce 192.168.23.100:8888 1581505307558 0. 5 Connected Slave 584fcfaa343e1777d8a123dc18ed120a44f13422
554fe235bfe4f1f5490bc1c56cc3aff88cb6aa1f 192.168.23.101:8888 Slave c1e0f4ede71cdfa94db63fbc8dbc0d03024e598a 0. 7 Connected 1,581,505,306,551
e8c026d7bf2d82e95d9498cf56ad3ac45ab6e6ce 192.168.23.102:8888 slave 72a85ee1b384421e031f59e9e2a24d7eb82fe737 0 1581505310587 1 connected
584fcfaa343e1777d8a123dc18ed120a44f13422 192.168.23.100:7777 master - 0 1581505309577 5 connected 0-5461
192.168.23.102:7777> 

[Redis @ k8snode01 src] $  /home/redis/soft/redis-3.2.1/src/redis-cli -h 192.168.23.101 -a -p 7777 123456 # stop 192.168.23.101:7777, simulation downtime
192.168.23.101 : 7777> the shutdown
not Connected> 

192.168.23.102:7777> cluster nodes #192.168.23.101:7777停止,192.168.23.101:8888正常接管
72a85ee1b384421e031f59e9e2a24d7eb82fe737 192.168.23.102:7777 myself,master - 0 0 1 connected 10923-16383
c1e0f4ede71cdfa94db63fbc8dbc0d03024e598a 192.168.23.101:7777 master,fail - 1581505306750 1581505302518 7 disconnected
681b511c9ea52b032b197e8e39dc25e6f9edc8ce 192.168.23.100:8888 slave 584fcfaa343e1777d8a123dc18ed120a44f13422 0 1581505326748 5 connected
554fe235bfe4f1f5490bc1c56cc3aff88cb6aa1f 192.168.23.101:8888 master - 0 1581505327759 8 connected 5462-10922
e8c026d7bf2d82e95d9498cf56ad3ac45ab6e6ce 192.168.23.102:8888 slave 72a85ee1b384421e031f59e9e2a24d7eb82fe737 0 1581505325742 1 connected
584fcfaa343e1777d8a123dc18ed120a44f13422 192.168.23.100:7777 master - 0 1581505324733 5 connected 0-5461
192.168.23.102:7777> 

[Redis @ k8snode01 src] $  /home/redis/soft/redis-3.2.1/src/redis-server /home/redis/soft/cluster/7777/redis.conf # restore 192.168.23.101:7777

192.168.23.102:7777> cluster nodes #192.168.23.101:7777为从,192.168.23.101:8888为主,不抢占
72a85ee1b384421e031f59e9e2a24d7eb82fe737 192.168.23.102:7777 myself,master - 0 0 1 connected 10923-16383
c1e0f4ede71cdfa94db63fbc8dbc0d03024e598a 192.168.23.101:7777 slave 554fe235bfe4f1f5490bc1c56cc3aff88cb6aa1f 0 1581505509554 8 connected
681b511c9ea52b032b197e8e39dc25e6f9edc8ce 192.168.23.100:8888 slave 584fcfaa343e1777d8a123dc18ed120a44f13422 0 1581505510565 5 connected
554fe235bfe4f1f5490bc1c56cc3aff88cb6aa1f 192.168.23.101:8888 master - 0 1581505508544 8 connected 5462-10922
e8c026d7bf2d82e95d9498cf56ad3ac45ab6e6ce 192.168.23.102:8888 slave 72a85ee1b384421e031f59e9e2a24d7eb82fe737 0 1581505505525 1 connected
584fcfaa343e1777d8a123dc18ed120a44f13422 192.168.23.100:7777 master - 0 1581505507538 5 connected 0-5461
192.168.23.102:7777> 

Published 60 original articles · won praise 20 · views 4570

Guess you like

Origin blog.csdn.net/zhaikaiyun/article/details/105033071