主頁 > 資料庫 > Redis服務之Redis5集群相關命令說明

Redis服務之Redis5集群相關命令說明

2020-09-10 06:28:41 資料庫

  上一篇博客主要聊了下redis.trib.rb這個工具來管理redis3/4 cluster 中的節點,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/13456915.html;今天我們主要來說一下redis5上cluster相關配置命令說明;

  創建集群

[root@node1 redis]# redis-cli -a admin --cluster create 192.168.0.41:6379 192.168.0.42:6379 192.168.0.43:6379 192.168.0.41:6380 192.168.0.42:6380 192.168.0.43:6380 --cluster-replicas 1 
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.0.42:6380 to 192.168.0.41:6379
Adding replica 192.168.0.43:6380 to 192.168.0.42:6379
Adding replica 192.168.0.41:6380 to 192.168.0.43:6379
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[0-5460] (5461 slots) master
M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots:[5461-10922] (5462 slots) master
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[10923-16383] (5461 slots) master
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   replicates 506776f910a52e45987785199e4fd293956ac1c5
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 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots: (0 slots) slave
   replicates 506776f910a52e45987785199e4fd293956ac1c5
M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node1 redis]# 

  提示:-a表示指定連接集群的密碼,--cluster create 表示創建集群,后面跟要加入集群的各節點ip地址和埠(包括master和slave);--cluster replicas 用來指定集群master對應的副本(slave)數量;它會根據我們指定的數量,去創建master和slave,并把16384個槽位平均分配給對應的master節點,并且會自動關聯master和slave的關系;

  查看集群資訊

[root@node1 redis]# cd
[root@node1 ~]# redis-cli --cluster info 192.168.0.41:6379
[ERR] Node 192.168.0.41:6379 NOAUTH Authentication required.
[root@node1 ~]# redis-cli -a admin --cluster info 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379 (91e34830...) -> 0 keys | 5461 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 5461 slots | 1 slaves.
192.168.0.42:6379 (506776f9...) -> 0 keys | 5462 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.
[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379 (91e34830...) -> 0 keys | 5461 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 5461 slots | 1 slaves.
192.168.0.42:6379 (506776f9...) -> 0 keys | 5462 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots: (0 slots) slave
   replicates 506776f910a52e45987785199e4fd293956ac1c5
M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node1 ~]#

  查看集群 node 對應關系

[root@node1 ~]# redis-cli -a admin -c cluster nodes
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379@16379 master - 0 1592495162494 3 connected 10923-16383
eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380@16380 slave 91e34830f16e45110e37618540628587d5ecc7e2 0 1592495164579 5 connected
91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379@16379 myself,master - 0 1592495158000 1 connected 0-5460
6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380@16380 slave 506776f910a52e45987785199e4fd293956ac1c5 0 1592495159344 6 connected
506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379@16379 master - 0 1592495163529 2 connected 5461-10922
646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380@16380 slave 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 0 1592495161445 4 connected
[root@node1 ~]#

  查看集群狀態

[root@node1 ~]# redis-cli -a admin -c cluster info
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
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:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:159
cluster_stats_messages_pong_sent:158
cluster_stats_messages_sent:317
cluster_stats_messages_ping_received:153
cluster_stats_messages_pong_received:159
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:317
[root@node1 ~]# 

  提示:其實以上命令就是使用非互動式命令和redis互動,有點類似mysql中的-e選項,連接到對應redisserver上執行命令后回傳,在mysql中用-e指定要執行的命令,在redis中用-c指定要執行的命令;

  添加一個新節點到現有集群

  實驗環境說明

  環境目錄結構

[root@node03 redis]# tree 
.
├── 6379
│   └── etc
│       └── redis.conf
├── 6380
│   └── etc
│       └── redis.conf
├── 6381
│   └── etc
│       └── redis.conf
├── 6382
│   └── etc
│       └── redis.conf
├── bin
│   ├── redis-benchmark
│   ├── redis-check-aof
│   ├── redis-check-rdb
│   ├── redis-cli
│   ├── redis-sentinel -> redis-server
│   └── redis-server
├── dump_6379.rdb
├── dump_6380.rdb
├── logs
│   ├── redis_6379.log
│   └── redis_6380.log
├── redis-cluster-6379.conf
├── redis-cluster-6380.conf
└── run

11 directories, 16 files
[root@node03 redis]# 

  確認組態檔資訊

  提示:需要注意bind的地址必須能夠和集群其他節點通信,埠不能和本機其他埠沖突,密碼要和集群中的節點其他密碼相同;

  啟動192.168.0.43:6081/6082

  把192.168.0.43:6381/6382添加到現有集群

[root@node1 ~]# redis-cli -a admin --cluster add-node 192.168.0.43:6381 192.168.0.41:6379 
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 192.168.0.43:6381 to cluster 192.168.0.41:6379
>>> Performing Cluster Check (using node 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots: (0 slots) slave
   replicates 506776f910a52e45987785199e4fd293956ac1c5
M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.0.43:6381 to make it join the cluster.
[OK] New node added correctly.
[root@node1 ~]# redis-cli -a admin --cluster add-node 192.168.0.43:6382 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Adding node 192.168.0.43:6382 to cluster 192.168.0.41:6379
>>> Performing Cluster Check (using node 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots: (0 slots) slave
   replicates 506776f910a52e45987785199e4fd293956ac1c5
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots: (0 slots) master
M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.0.43:6382 to make it join the cluster.
[OK] New node added correctly.
[root@node1 ~]# 

  查看現有集群資訊

[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379 (91e34830...) -> 0 keys | 5461 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 5461 slots | 1 slaves.
192.168.0.43:6382 (43d6e13d...) -> 0 keys | 0 slots | 0 slaves.
192.168.0.43:6381 (95fa2115...) -> 0 keys | 0 slots | 0 slaves.
192.168.0.42:6379 (506776f9...) -> 0 keys | 5462 slots | 1 slaves.
[OK] 0 keys in 5 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots: (0 slots) slave
   replicates 506776f910a52e45987785199e4fd293956ac1c5
M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382
   slots: (0 slots) master
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots: (0 slots) master
M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node1 ~]# redis-cli -a admin -c cluster nodes
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379@16379 master - 0 1592498237487 3 connected 10923-16383
eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380@16380 slave 91e34830f16e45110e37618540628587d5ecc7e2 0 1592498238525 5 connected
91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379@16379 myself,master - 0 1592498215000 1 connected 0-5460
6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380@16380 slave 506776f910a52e45987785199e4fd293956ac1c5 0 1592498234346 6 connected
43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382@16382 master - 0 1592498236438 7 connected
95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381@16381 master - 0 1592498235388 0 connected
506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379@16379 master - 0 1592498239566 2 connected 5461-10922
646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380@16380 slave 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 0 1592498233609 4 connected
[root@node1 ~]# 

  提示:可以看到對應集群上新加了兩個節點,都是master角色,并且新加的兩個節點都沒有slave和slot;

  分配槽位給192.168.0.43:6381

[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379  
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379 (91e34830...) -> 0 keys | 5461 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 5461 slots | 1 slaves.
192.168.0.43:6382 (43d6e13d...) -> 0 keys | 0 slots | 0 slaves.
192.168.0.43:6381 (95fa2115...) -> 0 keys | 0 slots | 0 slaves.
192.168.0.42:6379 (506776f9...) -> 0 keys | 5462 slots | 1 slaves.
[OK] 0 keys in 5 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots: (0 slots) slave
   replicates 506776f910a52e45987785199e4fd293956ac1c5
M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382
   slots: (0 slots) master
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots: (0 slots) master
M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node1 ~]# redis-cli -a admin --cluster reshard 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing Cluster Check (using node 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots: (0 slots) slave
   replicates 506776f910a52e45987785199e4fd293956ac1c5
M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382
   slots: (0 slots) master
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots: (0 slots) master
M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4096
What is the receiving node ID? 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
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

Ready to move 4096 slots.
  Source nodes:
    M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
       slots:[0-5460] (5461 slots) master
       1 additional replica(s)
    M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
       slots:[10923-16383] (5461 slots) master
       1 additional replica(s)
    M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382
       slots: (0 slots) master
    M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
       slots:[5461-10922] (5462 slots) master
       1 additional replica(s)
  Destination node:
    M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
       slots: (0 slots) master
  Resharding plan:
    Moving slot 5461 from 506776f910a52e45987785199e4fd293956ac1c5
    Moving slot 5462 from 506776f910a52e45987785199e4fd293956ac1c5
    Moving slot 5463 from 506776f910a52e45987785199e4fd293956ac1c5
    Moving slot 5464 from 506776f910a52e45987785199e4fd293956ac1c5
    Moving slot 5465 from 506776f910a52e45987785199e4fd293956ac1c5
    Moving slot 5466 from 506776f910a52e45987785199e4fd293956ac1c5
    Moving slot 5467 from 506776f910a52e45987785199e4fd293956ac1c5
    Moving slot 5468 from 506776f910a52e45987785199e4fd293956ac1c5
    Moving slot 5469 from 506776f910a52e45987785199e4fd293956ac1c5
……省略部分內容……
    Moving slot 12284 from 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
    Moving slot 12285 from 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
    Moving slot 12286 from 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
    Moving slot 12287 from 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
Do you want to proceed with the proposed reshard plan (yes/no)? yes
Moving slot 5461 from 192.168.0.42:6379 to 192.168.0.43:6381: 
Moving slot 5462 from 192.168.0.42:6379 to 192.168.0.43:6381: 
Moving slot 5463 from 192.168.0.42:6379 to 192.168.0.43:6381: 
Moving slot 5464 from 192.168.0.42:6379 to 192.168.0.43:6381: 
……省略部分內容……
Moving slot 12285 from 192.168.0.43:6379 to 192.168.0.43:6381: 
Moving slot 12286 from 192.168.0.43:6379 to 192.168.0.43:6381: 
Moving slot 12287 from 192.168.0.43:6379 to 192.168.0.43:6381: 
[root@node1 ~]# 

  提示:這個和redis-trib.rb命令使用沒有什么區別;

  查看新分配的槽位資訊

[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379 (91e34830...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6382 (43d6e13d...) -> 0 keys | 0 slots | 0 slaves.
192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 0 slaves.
192.168.0.42:6379 (506776f9...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 0 keys in 5 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[1365-5460] (4096 slots) master
   1 additional replica(s)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[12288-16383] (4096 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots: (0 slots) slave
   replicates 506776f910a52e45987785199e4fd293956ac1c5
M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382
   slots: (0 slots) master
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots:[6827-10922] (4096 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node1 ~]# 

  提示:可以看到現在集群有4個節點都分配了4096個slot,還有一個沒有slot;

  更改節點(192.168.0.43:6382)為新節點(192.168.0.43:6381)的slave

[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379 (91e34830...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6382 (43d6e13d...) -> 0 keys | 0 slots | 0 slaves.
192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 0 slaves.
192.168.0.42:6379 (506776f9...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 0 keys in 5 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[1365-5460] (4096 slots) master
   1 additional replica(s)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[12288-16383] (4096 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots: (0 slots) slave
   replicates 506776f910a52e45987785199e4fd293956ac1c5
M: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382
   slots: (0 slots) master
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots:[6827-10922] (4096 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node1 ~]# redis-cli -h 192.168.0.43 -p 6382 -a admin -c cluster replicate 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
OK
[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379                                      
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379 (91e34830...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.42:6379 (506776f9...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 0 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[1365-5460] (4096 slots) master
   1 additional replica(s)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[12288-16383] (4096 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
S: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots: (0 slots) slave
   replicates 506776f910a52e45987785199e4fd293956ac1c5
S: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382
   slots: (0 slots) slave
   replicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
   1 additional replica(s)
M: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots:[6827-10922] (4096 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node1 ~]# 

  提示:我上面使用-c在shell上連接redis執行命令,這個和互動式執行命令一樣的效果;從上面的資訊可以看到192.168.0.43:6381已經有一個slave了,對應192.168.0.43:6382也沒有出現到master串列中了;

  驗證:向集群中讀寫資料

[root@node1 ~]# redis-cli -a admin
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> KEYS *
(empty list or set)
127.0.0.1:6379> set aa bb
(error) MOVED 1180 192.168.0.43:6381
127.0.0.1:6379> set cc dd 
(error) MOVED 700 192.168.0.43:6381
127.0.0.1:6379> set k v
(error) MOVED 7629 192.168.0.42:6379
127.0.0.1:6379> set kk vv
OK
127.0.0.1:6379> get kk 
"vv"
127.0.0.1:6379> 

  提示:從上面的結果看,讀寫都可以正常執行,也能夠正常的把對應的key進行計算,并告訴我們該到那個節點上執行對應的key讀寫操作;

  驗證:停掉集群中任意一臺master,看看對應slave是否提升為master?

[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.42
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
[ERR] Invalid arguments: you need to pass either a valid address (ie. 120.0.0.1:7000) or space separated IP and port (ie. 120.0.0.1 7000)
[root@node2 redis]# 
[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.42:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.42:6379 (506776f9...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.41:6379 (91e34830...) -> 1 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.
[root@node2 redis]# ps -ef |grep redis
root      20256      1  0 11:40 ?        00:00:15 redis-server 0.0.0.0:6379 [cluster]
root      20258      1  0 11:40 ?        00:00:13 redis-server 0.0.0.0:6380 [cluster]
root      20318   1926  0 13:04 pts/1    00:00:00 grep --color=auto redis
[root@node2 redis]# kill -9 20256
[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
Could not connect to Redis at 192.168.0.42:6379: Connection refused
*** WARNING: 192.168.0.43:6380 claims to be slave of unknown node ID 506776f910a52e45987785199e4fd293956ac1c5.
192.168.0.41:6379 (91e34830...) -> 1 keys | 4096 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 1 keys in 3 masters.
0.00 keys per slot on average.
[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
Could not connect to Redis at 192.168.0.42:6379: Connection refused
192.168.0.41:6379 (91e34830...) -> 1 keys | 4096 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 0 slaves.
192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.
[root@node2 redis]# 

  提示:可以看到對應slave是能夠被提升為master的;

  驗證:把對應宕機的節點啟動起來,看看是否自動降級為slave呢?

[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
Could not connect to Redis at 192.168.0.42:6379: Connection refused
192.168.0.41:6379 (91e34830...) -> 1 keys | 4096 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 0 slaves.
192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.
[root@node2 redis]# redis-server /usr/local/redis/6379/etc/redis.conf 
[root@node2 redis]# redis-cli -a admin --cluster info 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379 (91e34830...) -> 1 keys | 4096 slots | 1 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 0 keys | 4096 slots | 1 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.
[root@node2 redis]# redis-cli -a admin -h 192.168.0.42 -p 6379 -c info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:slave
master_host:192.168.0.43
master_port:6380
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:6594
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:7b45a2b847aba7e40e3a6b7f39d4511fa2a62b6a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:6594
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:6497
repl_backlog_histlen:98
[root@node2 redis]# 

  提示:當192.168.0.42:6379啟動后,自動降級為slave,并從屬192.168.0.43:6380;

  動態洗掉集群中的節點

  把192.168.0.41:6379上的slot移動到192.168.0.43:6381

[root@node1 ~]# redis-cli -a admin --cluster reshard 192.168.0.41:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing Cluster Check (using node 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots:[1365-5460] (4096 slots) master
   1 additional replica(s)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[12288-16383] (4096 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 91e34830f16e45110e37618540628587d5ecc7e2
M: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots:[6827-10922] (4096 slots) master
   1 additional replica(s)
S: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382
   slots: (0 slots) slave
   replicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots:[0-1364],[5461-6826],[10923-12287] (4096 slots) master
   1 additional replica(s)
S: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots: (0 slots) slave
   replicates 6274aa87409a801311e580cb19d185c1d53bfa1f
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4096
What is the receiving node ID? 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
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: 91e34830f16e45110e37618540628587d5ecc7e2
Source node #2: done
    Moving slot 5457 from 91e34830f16e45110e37618540628587d5ecc7e2
    Moving slot 5458 from 91e34830f16e45110e37618540628587d5ecc7e2
    Moving slot 5459 from 91e34830f16e45110e37618540628587d5ecc7e2
    Moving slot 5460 from 91e34830f16e45110e37618540628587d5ecc7e2
Do you want to proceed with the proposed reshard plan (yes/no)? yes
Moving slot 1365 from 192.168.0.41:6379 to 192.168.0.43:6381: 
Moving slot 1366 from 192.168.0.41:6379 to 192.168.0.43:6381: 
Moving slot 1367 from 192.168.0.41:6379 to 192.168.0.43:6381: 
……省略部分內容……
Moving slot 5457 from 192.168.0.41:6379 to 192.168.0.43:6381: 
Moving slot 5458 from 192.168.0.41:6379 to 192.168.0.43:6381: 
Moving slot 5459 from 192.168.0.41:6379 to 192.168.0.43:6381: 
Moving slot 5460 from 192.168.0.41:6379 to 192.168.0.43:6381: 
[root@node1 ~]#

  提示:在redis5上遷移是,即便對應節點上有資料,也可以直接遷移,并且把對應應資料以便遷移到指定的節點上去了;

  查看遷移后的集群資訊

[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.41:6379  
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379 (91e34830...) -> 0 keys | 0 slots | 0 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 1 keys | 8192 slots | 2 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.41:6379)
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots: (0 slots) master
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[12288-16383] (4096 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
M: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots:[6827-10922] (4096 slots) master
   1 additional replica(s)
S: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382
   slots: (0 slots) slave
   replicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots:[0-6826],[10923-12287] (8192 slots) master
   2 additional replica(s)
S: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots: (0 slots) slave
   replicates 6274aa87409a801311e580cb19d185c1d53bfa1f
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node1 ~]# 

  提示:可以看到對應節點上的key和slave隨著slot的清空遷移而遷移;

  驗證:登錄對應的節點上查看192.168.0.41:6379上的key是否遷移到192.168.0.43:6381上了?

[root@node1 ~]# redis-cli -h 192.168.0.43 -p 6381
192.168.0.43:6381> AUTH admin
OK
192.168.0.43:6381> KEYS *
1) "kk"
192.168.0.43:6381> get kk 
"vv"
192.168.0.43:6381> 

  提示:可以看到我們之前在192.168.0.41:6379上寫入的key已經遷移到192.168.0.43:6381上了;

  把192.168.0.41:6379從集群中洗掉

[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.42:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379 (91e34830...) -> 0 keys | 0 slots | 0 slaves.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 1 keys | 8192 slots | 2 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.42:6379)
S: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots: (0 slots) slave
   replicates 6274aa87409a801311e580cb19d185c1d53bfa1f
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
M: 91e34830f16e45110e37618540628587d5ecc7e2 192.168.0.41:6379
   slots: (0 slots) master
S: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382
   slots: (0 slots) slave
   replicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[12288-16383] (4096 slots) master
   1 additional replica(s)
M: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots:[6827-10922] (4096 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots:[0-6826],[10923-12287] (8192 slots) master
   2 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node1 ~]# redis-cli -a admin --cluster del-node 192.168.0.42:6379 91e34830f16e45110e37618540628587d5ecc7e2
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Removing node 91e34830f16e45110e37618540628587d5ecc7e2 from cluster 192.168.0.42:6379
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.
[root@node1 ~]# redis-cli -a admin --cluster info 192.168.0.42:6379                                      
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 1 keys | 8192 slots | 2 slaves.
[OK] 1 keys in 3 masters.
0.00 keys per slot on average.
[root@node1 ~]# 

  提示:從上面的資訊可以看到對應節點從集群中洗掉了;對應節點的slave被遷移到新的master上去了;

  洗掉slave

[root@node1 ~]# redis-cli -a admin --cluster check 192.168.0.42:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 1 keys | 8192 slots | 2 slaves.
[OK] 1 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.42:6379)
S: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots: (0 slots) slave
   replicates 6274aa87409a801311e580cb19d185c1d53bfa1f
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
S: 43d6e13d06019af045e378ddc3e82b15b41ebdcd 192.168.0.43:6382
   slots: (0 slots) slave
   replicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[12288-16383] (4096 slots) master
   1 additional replica(s)
M: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots:[6827-10922] (4096 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots:[0-6826],[10923-12287] (8192 slots) master
   2 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node1 ~]# redis-cli -a admin --cluster del-node 192.168.0.42:6379 43d6e13d06019af045e378ddc3e82b15b41ebdcd
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Removing node 43d6e13d06019af045e378ddc3e82b15b41ebdcd from cluster 192.168.0.42:6379
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.
[root@node1 ~]# redis-cli -a admin --cluster info  192.168.0.42:6379                                      
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 1 keys | 8192 slots | 1 slaves.
[OK] 1 keys in 3 masters.
0.00 keys per slot on average.
[root@node1 ~]# 

  提示:對應slave可以直接洗掉,因為slave通常是沒有slot槽位的;

  驗證:把192.168.0.41:6379啟動起來,看看是否還會回到集群?

[root@node1 ~]# ss -tnl
State      Recv-Q Send-Q        Local Address:Port                       Peer Address:Port              
LISTEN     0      128                       *:6380                                  *:*                  
LISTEN     0      128                       *:22                                    *:*                  
LISTEN     0      100               127.0.0.1:25                                    *:*                  
LISTEN     0      128                       *:16380                                 *:*                  
LISTEN     0      128                      :::22                                   :::*                  
LISTEN     0      100                     ::1:25                                   :::*                  
[root@node1 ~]# redis-server /usr/local/redis/6379/etc/redis.conf 
[root@node1 ~]# ss -tnl
State      Recv-Q Send-Q        Local Address:Port                       Peer Address:Port              
LISTEN     0      128                       *:6379                                  *:*                  
LISTEN     0      128                       *:6380                                  *:*                  
LISTEN     0      128                       *:22                                    *:*                  
LISTEN     0      100               127.0.0.1:25                                    *:*                  
LISTEN     0      128                       *:16379                                 *:*                  
LISTEN     0      128                       *:16380                                 *:*                  
LISTEN     0      128                      :::22                                   :::*                  
LISTEN     0      100                     ::1:25                                   :::*                  
[root@node1 ~]# redis-cli -a admin --cluster info  192.168.0.42:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 1 keys | 8192 slots | 1 slaves.
[OK] 1 keys in 3 masters.
0.00 keys per slot on average.
[root@node1 ~]# redis-cli -a admin --cluster check  192.168.0.42:6379    
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 1 keys | 8192 slots | 1 slaves.
[OK] 1 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.42:6379)
S: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots: (0 slots) slave
   replicates 6274aa87409a801311e580cb19d185c1d53bfa1f
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[12288-16383] (4096 slots) master
   1 additional replica(s)
M: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots:[6827-10922] (4096 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots:[0-6826],[10923-12287] (8192 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node1 ~]# 

  提示:可以看到這里和redis3/4不同,這里啟動宕機后的server,它并不會重新回到集群中來;

  驗證:啟動洗掉的slave節點,看看是否回到集群?

[root@node03 redis]# ss -tnl
State      Recv-Q Send-Q        Local Address:Port                       Peer Address:Port              
LISTEN     0      128                       *:6379                                  *:*                  
LISTEN     0      128                       *:6380                                  *:*                  
LISTEN     0      128                       *:6381                                  *:*                  
LISTEN     0      128                       *:22                                    *:*                  
LISTEN     0      100               127.0.0.1:25                                    *:*                  
LISTEN     0      128                       *:16379                                 *:*                  
LISTEN     0      128                       *:16380                                 *:*                  
LISTEN     0      128                       *:16381                                 *:*                  
LISTEN     0      128                      :::22                                   :::*                  
LISTEN     0      100                     ::1:25                                   :::*                  
[root@node03 redis]# redis-server /usr/local/redis/6382/etc/redis.conf 
[root@node03 redis]# ss -tnl
State      Recv-Q Send-Q        Local Address:Port                       Peer Address:Port              
LISTEN     0      128                       *:6379                                  *:*                  
LISTEN     0      128                       *:6380                                  *:*                  
LISTEN     0      128                       *:6381                                  *:*                  
LISTEN     0      128                       *:6382                                  *:*                  
LISTEN     0      128                       *:22                                    *:*                  
LISTEN     0      100               127.0.0.1:25                                    *:*                  
LISTEN     0      128                       *:16379                                 *:*                  
LISTEN     0      128                       *:16380                                 *:*                  
LISTEN     0      128                       *:16381                                 *:*                  
LISTEN     0      128                       *:16382                                 *:*                  
LISTEN     0      128                      :::22                                   :::*                  
LISTEN     0      100                     ::1:25                                   :::*                  
[root@node03 redis]# redis-cli -a admin --cluster check 192.168.0.42:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.43:6379 (0479a31d...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6380 (6274aa87...) -> 0 keys | 4096 slots | 1 slaves.
192.168.0.43:6381 (95fa2115...) -> 1 keys | 8192 slots | 1 slaves.
[OK] 1 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.0.42:6379)
S: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots: (0 slots) slave
   replicates 6274aa87409a801311e580cb19d185c1d53bfa1f
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[12288-16383] (4096 slots) master
   1 additional replica(s)
M: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots:[6827-10922] (4096 slots) master
   1 additional replica(s)
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots:[0-6826],[10923-12287] (8192 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@node03 redis]# 

  提示:可以看到啟動被洗掉的slave以后,也不會重新回到集群;

  從外部redis server 匯入資料到集群

  在192.168.0.41:6379上創建一些key,來模擬外部redisserver

[root@node1 ~]# redis-cli -a admin -h 192.168.0.41 -p 6379           
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379> KEYS *
(empty list or set)
192.168.0.41:6379> set aa bb
(error) MOVED 1180 192.168.0.43:6381
192.168.0.41:6379> 

  提示:往192.168.0.41:6379插入不了資料,我們把集群功能給關掉試試?

  關掉192.168.0.41:6379的集群功能,再次啟動redis

[root@node1 ~]# grep ^#cluster /usr/local/redis/6379/etc/redis.conf
#cluster-enabled yes
#cluster-config-file redis-cluster-6379.conf
[root@node1 ~]# ps -ef |grep redis
root      19893      1  0 11:40 ?        00:00:21 redis-server 0.0.0.0:6380 [cluster]
root      20002      1  0 13:35 ?        00:00:02 redis-server 0.0.0.0:6379 [cluster]
root      20028   1491  0 13:49 pts/1    00:00:00 grep --color=auto redis
[root@node1 ~]# kill -9 20002
[root@node1 ~]# redis-server /usr/local/redis/6379/etc/redis.conf
[root@node1 ~]# ps -ef|grep redis
root      19893      1  0 11:40 ?        00:00:21 redis-server 0.0.0.0:6380 [cluster]
root      20030      1  0 13:49 ?        00:00:00 redis-server 0.0.0.0:6379
root      20035   1491  0 13:49 pts/1    00:00:00 grep --color=auto redis
[root@node1 ~]# 

  提示:可以看到對應redis行程就不是一cluster方式運行了,接下來我們再來插入資料試試

[root@node1 ~]# redis-cli -a admin -h 192.168.0.41 -p 6379                    
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.0.41:6379> KEYS *
(empty list or set)
192.168.0.41:6379> MSET k1 v1 k2 v2 k3 v3 k4 v4
OK
192.168.0.41:6379> KEYS *
1) "k3"
2) "k2"
3) "k4"
4) "k1"
192.168.0.41:6379>

  提示:可以看到現在再插入資料就沒有問題了;

  將192.168.0.41:6379上的資料匯入集群

  提示:匯入資料時,提示我們沒有認證;這里需要注意一點,匯入資料之前需要關閉各 redis 服務器的密碼,包括集群中的各 node 和源 Redis server,避免認證帶來的環境不一致從而無法匯入,可以加引數--cluster-replace 強制替換 Redis cluster 已有的 key,

  關閉集群各節點認證密碼和外部redisserver

  再次將192.168.0.41:6379上的資料匯入到集群

[root@node1 ~]# redis-cli --cluster import 192.168.0.43:6379 --cluster-from 192.168.0.41:6379 --cluster-copy          
>>> Importing data from 192.168.0.41:6379 to cluster 192.168.0.43:6379
>>> Performing Cluster Check (using node 192.168.0.43:6379)
M: 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617 192.168.0.43:6379
   slots:[12288-16383] (4096 slots) master
   1 additional replica(s)
M: 95fa21156efabc1e07b07b0bdbe52bf8fe004b86 192.168.0.43:6381
   slots:[0-6826],[10923-12287] (8192 slots) master
   1 additional replica(s)
M: 6274aa87409a801311e580cb19d185c1d53bfa1f 192.168.0.43:6380
   slots:[6827-10922] (4096 slots) master
   1 additional replica(s)
S: eb23a3ff659ee22d03661cf312d5bf38b32686b5 192.168.0.42:6380
   slots: (0 slots) slave
   replicates 95fa21156efabc1e07b07b0bdbe52bf8fe004b86
S: 506776f910a52e45987785199e4fd293956ac1c5 192.168.0.42:6379
   slots: (0 slots) slave
   replicates 6274aa87409a801311e580cb19d185c1d53bfa1f
S: 646b85ae18a63f36866c64edfba374559252dd1b 192.168.0.41:6380
   slots: (0 slots) slave
   replicates 0479a31d9a7bcb88a9fc1c4227f0f3e06ea3b617
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
*** Importing 4 keys from DB 0
Migrating k3 to 192.168.0.43:6381: OK
Migrating k2 to 192.168.0.43:6381: OK
Migrating k4 to 192.168.0.43:6380: OK
Migrating k1 to 192.168.0.43:6379: OK
[root@node1 ~]# 

  提示:可以看到匯入資料成功;

  驗證:在集群各節點查看匯入到資料

[root@node1 ~]# redis-cli -h 192.168.0.43 -p 6381
192.168.0.43:6381> KEYS *
1) "k2"
2) "k3"
3) "kk"
192.168.0.43:6381> get k2
"v2"
192.168.0.43:6381> get k3
"v3"
192.168.0.43:6381> quit
[root@node1 ~]# redis-cli -h 192.168.0.43 -p 6380
192.168.0.43:6380> KEYS *
1) "k4"
192.168.0.43:6380> get k4
"v4"
192.168.0.43:6380> quit
[root@node1 ~]# redis-cli -h 192.168.0.43 -p 6379
192.168.0.43:6379> KEYS *
1) "k1"
192.168.0.43:6379> get k1
"v1"
192.168.0.43:6379> quit
[root@node1 ~]# 

  提示:可以看到外部redisserver上的資料被分別倒入到集群中的各節點上存盤;在redis3/4上使用redis.trib.rb工具匯入資料始終提示錯誤,不知道什么原因,所以建議在生產中使用redis5以上版本做集群比較好;

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/1120.html

標籤:NoSQL

上一篇:Java Redis系列1 關系型資料庫與非關系型資料庫的優缺點及概念

下一篇:Java Redis系列2 (redis的安裝與使用+redis持久化的實作))

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more