redis 5.0.3 講解、集羣搭建

REDIS

 

一 、redis 介紹

無論你是從事Python、Java、Go、PHP、Ruby等等... Redis都應該是一個比較熟悉的中間件。而大部分常常寫業務代碼的程序員,實際工做中或許只用到了set value、get value兩個操做。node

1.redis 概念:

Redis是一個開源的底層使用C語言編寫的key-value存儲數據庫。可用於緩存、事件發佈訂閱、高速隊列等場景。並且支持豐富的數據類型:string(字符串)、hash(哈希)、list(列表)、set(無序集合)、zset(sorted set:有序集合)git

Redis 在3.0版本前只支持單實例模式,雖然支持主從模式、哨兵模式部署來解決單點故障,可是如今互聯網企業動輒大幾百G的數據,可徹底是無法知足業務的需求,因此,Redis 在 3.0 版本之後就推出了集羣模式。程序員

2.Redis在項目中的應用場景

2.一、緩存數據 最經常使用,對常常須要查詢且變更不是很頻繁的數據 常稱做熱點數據。github

2.二、消息隊列 至關於消息訂閱系統,好比ActiveMQ、RocketMQ。若是對數據有較高一致性要求時,仍是建議使用MQ)redis

2.三、計數器 好比統計點擊率、點贊率,redis具備原子性,能夠避免併發問題算法

2.四、電商網站信息 大型電商平臺初始化頁面數據的緩存。好比去哪兒網購買機票的時候首頁的價格和你點進去的價格會有差別。數據庫

2.五、熱點數據 好比新聞網站實時熱點、微博熱搜等,須要頻繁更新。總數據量比較大的時候直接從數據庫查詢會影響性能vim

3.數據類型

概念 說明
String(字符串) string是redis最基本的類型,你能夠理解成與Memcached如出一轍的類型,一個key對應一個value。string類型是二進制安全的。意思是redis的string能夠包含任何數據。好比jpg圖片或者序列化的對象 。 string類型是Redis最基本的數據類型,一個鍵最大能存儲512MB。
Hash(哈希) Redis hash 是一個鍵值對集合。Redis hash是一個string類型的field和value的映射表,hash特別適合用於存儲對象。每一個 hash 能夠存儲 2 *32 - 1鍵值對(40多億)。
List(列表) Redis 列表是簡單的字符串列表,按照插入順序排序。你能夠添加一個元素導列表的頭部(左邊)或者尾部(右邊)。列表最多可存儲 2*32 - 1元素 (4294967295, 每一個列表可存儲40多億)。
Set(無序集合) Redis的Set是string類型的無序集合。集合是經過哈希表實現的,因此添加,刪除,查找的複雜度都是O(1)。集合中最大的成員數爲 2* 32 - 1(4294967295, 每一個集合可存儲40多億個成員)。

| zset(sorted set:有序集合) | Redis zset 和 set 同樣也是string類型元素的集合,且不容許重複的成員。不一樣的是每一個元素都會關聯一個double類型的分數。redis正是經過分數來爲集合中的成員進行從小到大的排序。 zset的成員是惟一的,但分數(score)卻能夠重複。 |緩存

 

4.Redis數據類型應用場景

前面提到了Redis支持五種豐富的數據類型,那麼在不一樣場景下的選擇安全

String

字符串是最經常使用的數據類型,他可以存儲任何類型的字符串,固然也包括二進制、JSON化的對象、甚至是base64編碼以後的圖片。在Redis中一個字符串最大的容量爲512MB,能夠說是無所不能了。

Hash

經常使用做存儲結構化數據、好比論壇系統中能夠用來存儲用戶的Id、暱稱、頭像、積分等信息。若是須要修改其中的信息,只須要經過Key取出Value進行反序列化修改某一項的值,再序列化存儲到Redis中,Hash結構存儲,因爲Hash結構會在單個Hash元素在不足必定數量時進行壓縮存儲,因此能夠大量節約內存。這一點在String結構裏是不存在的。

List

List的實現爲一個雙向鏈表,便可以支持反向查找和遍歷,更方便操做,不過帶來了部分額外的內存開銷,Redis 內部的不少實現,包括髮送緩衝隊列等也都是用的這個數據結構。另外,能夠利用 lrange 命令,作基於 Redis 的分頁功能,性能極佳,用戶體驗好。

Set

set 對外提供的功能與 list 相似是一個列表的功能,特殊之處在於 set 是能夠自動排重的,當你須要存儲一個列表數據,又不但願出現重複數據時,這個時候就能夠選擇使用set。

Sorted Set

能夠按照某個條件的權重進行排序,好比能夠經過點擊數作出排行榜的數據應用。

5 優點和缺點

5.1優點:

\1. 性能極高– Redis能讀的速度是110000次/s,寫的速度是81000次/s 。

\2. 豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操做。

\3. 原子 – Redis的全部操做都是原子性的,同時Redis還支持對幾個操做全並後的原子性執行。

\4. 豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過時等等特性。

5.2 缺點:

\一、因爲是內存數據庫,因此單臺機器存儲的數據量是有限的,須要開發者提早預估,須要及時刪除不須要的數據。 \二、當修改Redis的數據以後須要將持久化到硬盤的數據從新加入到內容中,時間比較久,這個時候Redis是沒法正常運行的。

5.3對比:Redis與其餘key-value存儲有什麼不一樣

\1. Redis有着更爲複雜的數據結構而且提供對他們的原子性操做,這是一個不一樣於其餘數據庫的進化路徑。Redis的數據類型都是基於基本數據結構的同時對程序員透明,無需進行額外的抽象。

\2. Redis運行在內存中可是能夠持久化到磁盤,因此在對不一樣數據集進行高速讀寫時須要權衡內存,應爲數據量不能大於硬件內存。在內存數據庫方面的另外一個優勢是, 相比在磁盤上相同的複雜的數據結構,在內存中操做起來很是簡單,這樣Redis能夠作不少內部複雜性很強的事情。 同時,在磁盤格式方面他們是緊湊的以追加的方式產生的,由於他們並不須要進行隨機訪問。

2、安裝redis

1.源碼安裝redis

#yum -y install gcc
# wget http://download.redis.io/releases/redis-5.0.3.tar.gz
# tar xzf redis-5.0.3.tar.gz
# cd redis-5.0.3
# make
//默認端口 6379

1.1修改redis的配置文件

# pwd
/usr/local/redis/redis-5.0.3

# vim redis.conf
daemonize yes //把no 修改成yes,若是不修改,沒法在後臺繼續運行

1.2啓動redis

# pwd
/usr/local/redis/redis-5.0.3/src
#./redis-server ../redis.conf

經過客戶端測試
# ./redis-cli
127.0.0.1:6379> set • value [expiration EX seconds|PX milliseconds] [NX|XX]
[root@LWJ01 src]# ./redis-cli
127.0.0.1:6379> ping   //查看服務是否運行
PONG
127.0.0.1:6379>

1.3設置開機自動啓動

#vim /usr/lib/systemd/system/redis.service 
[Unit]
Description=Redis Server
After=network.target

[Service]
ExecStart=/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-5.0.3/redis.conf  --daemonize no
ExecStop=/usr/local/redis/redis-5.0.3/src/redis-cli -p 6379 shutdown
Restart=always

[Install]
WantedBy=multi-user.target

//redis-cli、redis-server和redis.conf文件的位置根據你實際放置的位置設定,--daemonize no這個參數必定要帶上,即便你配置文件裏設置daemonize的值是yes,否則設置的服務不生效。

# systemctl daemon-reload
# systemctl start redis.service
# systemctl enable redis.service

2.經過yum 安裝redis

# yum install redis

下載fedora的epel倉庫
# yum install epel-release

2.1 文件路徑

#pwd
/usr/bin //redis-server redis-cli 都在這個路徑下面
#pwd
/etc   //redis.conf 配置文件的路徑

2.2 啓動服務

# systemctl start redis

使用配置文件啓動 redis
# redis-server /etc/redis.conf &

查看進程
# ps -ef | grep redis
redis    13782     1  0 10:30 ?        00:00:00 /usr/bin/redis-server 127.0.0.1:6379
root     13813  8097  0 10:38 pts/0    00:00:00 grep --color=auto redis

查看端口
# ss -anpt | grep 6379
LISTEN     0      128    127.0.0.1:6379                     *:*                   users:(("redis-server",pid=13782,fd=4))

2.3 客戶端登陸

# redis-cli -h 127.0.0.1 -p 6379
## redis-cli -h 127.0.0.1 -p 6379 -a "123456" //設置後密碼的登陸
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

2.4 修改配置文件

# vim /etc/redis.conf
bind 127.0.0.1 //註釋掉此行,否則只能本地訪問 #bind 127.0.0.1
protected-mode yes   保護模式修改成no #product-mode no
requirepass 123456 修改默認密碼,查找 requirepass foobared 將 foobared 修改成你的密碼

2.5 客戶端進行驗證

# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379>

而後輸入info,提示必須驗證

輸入用戶名密碼 (auth  123456)
#127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> info

經過key * 查看全部的鍵(由於尚未使用,因此是空)
#127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>

2.6經過桌面客戶端鏈接redis

redis desktop manager

https://redisdesktop.com/download (官網 )

github地址:https://github.com/uglide/RedisDesktopManager/releases

百度網盤:http://pan.baidu.com/s/1kU8sY3P

 

 

2.7 redis 備份和恢復

redis 數據的路徑(其實備份和恢復就是cp)

導出:Redis寫數據時先寫到一個temp文件中,而後再把temp文件重命名爲預約義的文件,因此即便Redis在運行,也能夠直接用cp命令拷貝這個文件。

恢復:關閉Redis後直接覆蓋掉demo.rdb,而後重啓便可。

經過配置文件查看
#vim /etc/redis.conf
dbfilename dump.rdb
dir var/lib/redis


進行備份:
# redis-cli -h 192.168.25.65 -p 6379 -a "123456"
192.168.25.65:6379> ping
PONG
192.168.25.65:6379> SAVE //該命令將在 redis 安裝目錄中建立dump.rdb文件。
OK

進行恢復:
192.168.25.65:6379> CONFIG GET dir   //命令 CONFIG GET dir 輸出的 redis 備份目錄爲 /var/lib/redis。
1) "dir"
2) "/var/lib/redis"
192.168.25.65:6379>

接下來的操做:
1.)中止redis服務
2.)拷貝備份文件到 /usr/local/redis/bin目錄下
3.)從新啓動redis服務

 

三 redis 集羣搭建

簡要說明:

2018年十月 Redis 發佈了穩定版本的 5.0 版本,推出了各類新特性,其中一點是放棄 Ruby的集羣方式,改成 使用 C語言編寫的 redis-cli的方式,是集羣的構建方式複雜度大大下降。

https://redis.io/topics/cluster-tutorial Redis官網查看集羣搭建方式

如下步驟是在一臺 Linux 服務器上搭建有6個節點的 Redis集羣。(由於redis 集羣最低6個節點,否則沒法建立)

1 源碼安裝

#yum -y install gcc
# wget http://download.redis.io/releases/redis-5.0.3.tar.gz
# tar xzf redis-5.0.3.tar.gz
# cd redis-5.0.3
# make
//默認端口 6379

2.建立6個Redis配置文件,並配置

# pwd
/usr/local/redis/redis-5.0.3
#mkdir 6380 6381 6382 6383 6384 6385

而後拷貝原來的配置文件到目錄下,然就在到相應目錄下進行重命名
#cp redis.conf 6380   mv redis.conf redis-6380.conf
#cp redis.conf 6381   mv redis.conf redis-6381.conf
#cp redis.conf 6382   mv redis.conf redis-6382.conf
#cp redis.conf 6383   mv redis.conf redis-6383.conf
#cp redis.conf 6384   mv redis.conf redis-6384.conf
#cp redis.conf 6385   mv redis.conf redis-6385.conf

修改全部的配置文件 (加端口號的以此類推)
具體修改:
(1)port 6380  #綁定端口

(2)bind 192.168.25.64  #定IP也(能夠註釋掉,這樣任何桌面客戶端均可以鏈接了)

(3)dir /usr/local/redis-cluster/3680 #指定文件存放路徑 ( .rdb .aof nodes-xxxx.conf 這樣的文件都會在此路徑下)

(4)cluster-enabled yes   #啓動集羣模式

(5)cluster-config-file #集羣節點配置文件

(6)daemonize yes   #後臺啓動

(7)cluster-node-timeout 5000  #指定集羣節點超時時間

(8)appendonly yes #指定持久化方式
 
(9)protected-mode no #非保護模式

3. 啓動節點

# ./src/redis-server 6380/redis-6380.conf 
# ./src/redis-server 6381/redis-6381.conf
# ./src/redis-server 6382/redis-6382.conf
# ./src/redis-server 6383/redis-6383.conf
# ./src/redis-server 6384/redis-6384.conf
# ./src/redis-server 6385/redis-6385.conf

查看啓動的節點進程

4. 啓動集羣

#./src/redis-cli --cluster create 192.168.25.64:6380 192.168.25.64:6381 192.168.25.64:6382 192.168.25.64:6383 192.168.25.64:6384 192.168.25.64:6385 --cluster-replicas 1    
// --replicas 1 表示咱們但願爲集羣中的每一個主節點建立一個從節點。(--cluster-replicas 1 命令的意思: 一主一從配置,六個節點就是 三主三從)



5. 客戶端鏈接集羣

# ./redis-cli -c -h 192.168.25.64 -p 6380
192.168.25.64:6380>

查看集羣信息
192.168.25.64:6380> 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:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:7977
cluster_stats_messages_pong_sent:8091
cluster_stats_messages_sent:16068
cluster_stats_messages_ping_received:8086
cluster_stats_messages_pong_received:7977
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:16068
192.168.25.64:6380>

查看節點信息
192.168.25.64:6380> cluster nodes
0853d9773fdcdad1bc0174d64990c40c39b4a2c7 192.168.25.64:6384@16384 slave d9da56a8f068d5529a7771addf586d14e14ca888 0 1547453355000 5 connected
d9da56a8f068d5529a7771addf586d14e14ca888 192.168.25.64:6381@16381 master - 0 1547453356838 2 connected 5461-10922
4b8e4fa926486c8ab675b7bf2fe36320657f1eae 192.168.25.64:6380@16380 myself,master - 0 1547453354000 1 connected 0-5460
0e585e6a0f45e293680e7aec052d942d85dd90c3 192.168.25.64:6382@16382 master - 0 1547453356000 3 connected 10923-16383
8d9e75800b6a4cc1d2815fbb8dd0036ecd0221ce 192.168.25.64:6385@16385 slave 0e585e6a0f45e293680e7aec052d942d85dd90c3 0 1547453355837 6 connected
53d3770f2ee72b3548b8a4cb26a23e617f7558bb 192.168.25.64:6383@16383 slave 4b8e4fa926486c8ab675b7bf2fe36320657f1eae 0 1547453356000 4 connected
192.168.25.64:6380>

查看節點信息

6 集羣測試

[root@LWJ01 src]# ./redis-cli -c -h 192.168.25.64 -p 6380
192.168.25.64:6380> set name ww
-> Redirected to slot [5798] located at 192.168.25.64:6381
OK
192.168.25.64:6381> set age 20
-> Redirected to slot [741] located at 192.168.25.64:6380
OK
192.168.25.64:6380> get name
-> Redirected to slot [5798] located at 192.168.25.64:6381
"ww"
192.168.25.64:6381> get age
-> Redirected to slot [741] located at 192.168.25.64:6380
"20"
192.168.25.64:6380>


# ./redis-cli -h 192.168.25.64 -p 6380
192.168.25.64:6380> set name ww
(error) MOVED 5798 192.168.25.64:6381
192.168.25.64:6380> set age 20
OK
192.168.25.64:6380> get name
(error) MOVED 5798 192.168.25.64:6381
192.168.25.64:6380> get age
"20"
192.168.25.64:6380>

能夠看到,客戶端鏈接加-c選項的時候,存儲和提取key的時候不斷在7031和7032之間跳轉,這個稱爲客戶端重定向。之因此發生客戶端重定向,是由於Redis Cluster中的每一個Master節點都會負責一部分的槽(slot),存取的時候都會進行鍵值空間計算定位key映射在哪一個槽(slot)上,若是映射的槽(slot)正好是當前Master節點負責則直接存取,不然就跳轉到其餘Master節點負的槽(slot)中存取,這個過程對客戶端是透明的。

7 redis 集羣分區原理

7.1 槽(slot)的基本概念

從上面集羣的簡單操做中,咱們已經知道redis存取key的時候,都要定位相應的槽(slot)。

Redis 集羣鍵分佈算法使用數據分片(sharding)而非一致性哈希(consistency hashing)來實現: 一個 Redis 集羣包含 16384 個哈希槽(hash slot), 它們的編號爲0、一、二、3……1638二、16383,這個槽是一個邏輯意義上的槽,實際上並不存在。redis中的每一個key都屬於這 16384 個哈希槽的其中一個,存取key時都要進行key->slot的映射計算。

 

>>> 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.25.64:6383 to 192.168.25.64:6380
Adding replica 192.168.25.64:6384 to 192.168.25.64:6381
Adding replica 192.168.25.64:6385 to 192.168.25.64:6382

# 從上面信息能夠看出,建立集羣的時候,哈希槽被分配到了三個主節點上,從節點是沒有哈希槽的,6380 負責編號爲 0 - 5460,共 5461個slots 、6381 負責編號爲 5461 - 10922 ,共5462個slots、6382負責編號爲 10923 - 16383 共5461個slots

7.2 集羣分區好處

redis的集羣分區,最主要的目的都是在移除、添加一個節點時對已經存在的緩存數據的定位影響儘量的降到最小。redis將哈希槽分佈到不一樣節點的作法使得用戶能夠很容易地向集羣中添加或者刪除節點, 好比說:

  • 若是用戶將新節點 D 添加到集羣中, 那麼集羣只須要將節點 A 、B 、 C 中的某些槽移動到節點 D 就能夠了。

  • 與此相似, 若是用戶要從集羣中移除節點 A , 那麼集羣只須要將節點 A 中的全部哈希槽移動到節點 B 和節點 C , 而後再移除空白(不包含任何哈希槽)的節點 A 就能夠了。

由於將一個哈希槽從一個節點移動到另外一個節點不會形成節點阻塞, 因此不管是添加新節點仍是移除已存在 節點, 又或者改變某個節點包含的哈希槽數量, 都不會形成集羣下線,從而保證集羣的可用性。下面咱們就來學習下集羣中節點的增長和刪除。

7.3 新增節點

## pwd
/usr/local/redis/redis-5.0.3
# mkdir 6386 6388
#cp redis.conf 6386     mv redis.conf redis-6386.conf
#cp redis.conf 6388     mv redis.conf redis-6388.conf
//進入到相應的目錄下重命名,並進行配置

7.4 啓動新增長的節點

# ./src/redis-server 6386/redis-6386.conf

進行查看
# ps -ef | grep redis

 

7.5 添加節點到集羣

#./src/redis-cli --cluster add-node 192.168.25.64:6386 192.168.25.64:6386
#./src/redis-cli --cluster add-node 192.168.25.64:6388 192.168.25.64:6388
格式:
redis-cli --cluster add-node {新節點IP}:{新節點端口} {任意集羣節點IP}:{對應端口} #若是添加集羣中的主節點,則新添加的就是主節點,若是是從節點則是從節點

查看集羣信息
# ./src/redis-cli -c -h 192.168.25.64 -p 6388
192.168.25.64:6386> cluster nodes

或者用這樣能夠查看集羣檢查集羣
#./src/redis-cli --cluster check 192.168.25.64:6380

 

7.5.1 自定義分配槽

從添加主節點輸出信息和查看集羣信息中能夠看出,咱們已經成功的向集羣中添加了一個主節點,可是這個主節尚未成爲真正的主節點,由於尚未分配槽(slot),也沒有從節點,如今要給它分配槽(slot)

 自定義分配槽(slot)
#./redis-cli --cluster reshard 192.168.25.64:6380

#系統提示要移動多少個配槽(slot),而且配槽(slot)要移動到哪一個節點,任意輸入一個數,如1024,再輸入新增節點的ID1ee802b8051761fd26ab688ff9dca95df35ef3c4

#而後提示要從哪幾個節點中移除1024個槽(slot),這裏輸入‘all’表示從全部的主節點中隨機轉移,湊夠1024個哈希槽,而後就開始重新分配槽(slot)了。重新分配完後再次查看集羣節點信息

 

7.5.2 查看分配的結果

#./src/redis-cli --cluster check 192.168.25.64:6380

也能夠直接查看集羣key、slot、slave分佈信息
#./src/redis-cli --cluster info 192.168.25.64:6380

 

7.5.3 平衡各節點槽數量
如今想要各個節點槽的數量至關,因此要進行平衡
# ./src/redis-cli --cluster rebalance --cluster-threshold 1 192.168.25.64:6380

 

查看結果
#./src/redis-cli --cluster info 192.168.25.64:6380

7.6 指定從節點

查看節點狀態
#./src/redis-cli -c -h 192.168.25.64 -p 6380

由下圖能夠看出 從節點 6383 的主節點是 6380 ,如今要把它變成 主節點6381的從節點,須要登陸 6383客戶端

# ./src/redis-cli -c -h 192.168.25.64 -p 6383
192.168.25.64:6383> cluster replicate d9da56a8f068d5529a7771addf586d14e14ca888
OK
192.168.25.64:6383>

再次查看集羣節點信息
192.168.25.64:6383> cluster nodes

 

7.7 刪除節點

刪除從節點  6386
# ./src/redis-cli --cluster del-node 192.168.25.64:6386 9ba935475b55b9792e6ab0de7f974b8df68db11d
>>> Removing node 9ba935475b55b9792e6ab0de7f974b8df68db11d from cluster 192.168.25.64:6386
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.
[root@LWJ01 redis-5.0.3]#

# ./src/redis-cli -p 6386 cluster nodes
Could not connect to Redis at 127.0.0.1:6386: Connection refused
# ./src/redis-cli -p 6385 cluster nodes
經過下圖能夠看出從節點6386 已經被刪除

 

刪除主節點 3681(由於剛纔刪除的從節點就是6381的從節點,因此此步驟略)
1)若是主節點有從節點,將從節點轉移到其餘主節點
2)若是主節點有slot,去掉分配的slot,而後在刪除主節點

#./redis-cli --cluster reshard 192.168.25.64:6380 //取消分配的slot
How many slots do you want to move (from 1 to 16384)? 4096 //被刪除master的全部slot數量  
What is the receiving node ID? 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052 //接收6378節點slot的master  
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:03ccad2ba5dd1e062464bc7590400441fafb63f2 //被刪除master的node-id  
Source node #2:done  
 
Do you want to proceed with the proposed reshard plan (yes/no)? yes //取消slot



查看結果: 6381 的槽已經被取消,分配給了6380
# ./src/redis-cli --cluster info 192.168.25.64:6380
192.168.25.64:6380 (4b8e4fa9...) -> 0 keys | 8192 slots | 1 slaves.
192.168.25.64:6381 (d9da56a8...) -> 0 keys | 0 slots | 0 slaves.
192.168.25.64:6382 (0e585e6a...) -> 0 keys | 4096 slots | 1 slaves.
192.168.25.64:6388 (1ee802b8...) -> 3 keys | 4096 slots | 1 slaves.
[OK] 3 keys in 4 masters.
0.00 keys per slot on average.

 

刪除 6381
# ./src/redis-cli --cluster del-node 192.168.25.64:6381 d9da56a8f068d5529a7771addf586d14e14ca888
>>> Removing node d9da56a8f068d5529a7771addf586d14e14ca888 from cluster 192.168.25.64:6381
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.
[root@LWJ01 redis-5.0.3]#

查看結果:
# ./src/redis-cli --cluster info 192.168.25.64:6380
192.168.25.64:6380 (4b8e4fa9...) -> 0 keys | 8192 slots | 1 slaves.
192.168.25.64:6382 (0e585e6a...) -> 0 keys | 4096 slots | 1 slaves.
192.168.25.64:6388 (1ee802b8...) -> 3 keys | 4096 slots | 1 slaves.
[OK] 3 keys in 3 masters.
0.00 keys per slot on average.
[root@LWJ01 redis-5.0.3]#

相關文章
相關標籤/搜索