Redis學習筆記(2)基本命令

可參考:https://blog.csdn.net/mysqldba23/article/details/67640478
https://blog.51cto.com/caiyuanji
crc 16384
redis-cli -p port -c command -h host
redis-cli -h 192.168.170.132 -c ping
redis-cli -h 192.168.170.132 -c cluster nodes
redis-cli -h 192.168.170.132 -p port -c cluster failover 故障轉移,在slave節點執行
登錄:$ redis-cli -h host -p port -a password
127.0.0.1:6379> ping
PONG #用於檢測redis服務是否開啓
CONFIG GET * 獲取所有東西
客戶端連接操作
[root@gougou ~]# redis-cli -h maomao -p 6379
maomao:6379> CLUSTER INFO 查看集羣信息
cluster_state:ok
cluster_slots_assigned:16384 slot已分配數量
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:3
cluster_my_epoch:2
cluster_stats_messages_ping_sent:63701
cluster_stats_messages_pong_sent:66118
cluster_stats_messages_meet_sent:9
cluster_stats_messages_sent:129828
cluster_stats_messages_ping_received:66115
cluster_stats_messages_pong_received:63568
cluster_stats_messages_meet_received:3
cluster_stats_messages_received:129686
maomao:6379>CLUSTER NODES 查看集羣內的節點
0ad6b93eb27efcef3c27ef145f48d29c226071c6 192.168.170.131:6379@16379 master - 0 1550198514363 1 connected 0-5460
031a1a6f888f83ad5aec91f4a0a4107febe1313b 192.168.170.130:6389@16389 slave 0ad6b93eb27efcef3c27ef145f48d29c226071c6 0 1550198513000 1 connected
b889283cb38802ada1a622648ae5302c744a48ce 192.168.170.130:6379@16379 myself,master - 0 1550198512000 2 connected 5461-10922
2904898981dc2642f727960ed3a564ca5bba8f9b 192.168.170.132:6379@16379 master - 0 1550198513000 3 connected 10923-16383
fb26a19e0916ce3d36e3943fefb5bb6d788f6330 192.168.170.132:6389@16389 slave b889283cb38802ada1a622648ae5302c744a48ce 0 1550198513354 2 connected
0581e47486b02408c69d7e22e22648b0bc86336d 192.168.170.131:6389@16389 slave 2904898981dc2642f727960ed3a564ca5bba8f9b 0 1550198511339 3 connected

[root@gougou ~]# redis-cli --cluster info 192.168.170.130:6379
192.168.170.130:6379 (b889283c...) -> 1 keys | 5462 slots | 1 slaves.
192.168.170.132:6379 (29048989...) -> 0 keys | 5461 slots | 1 slaves.
192.168.170.131:6379 (0ad6b93e...) -> 0 keys | 5461 slots | 1 slaves.
4.0用法
redis-trib.rb reshard 192.168.170.132:6379 手工平衡slots (遷移)
5.0用法
redis-cli --cluster reshard 192.168.170.132:6379
......
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 3000 要移除的slot數量
What is the receiving node ID? 0d49e2f3440ecb0bcc079e3a632b148df049b32b master的id號
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 “all”將所有節點用作哈希槽的源節點

節點下線,4.0用法
1) 需要先將“要下線的master” 中的slot遷移到其它節點
[root@redis01-jp ~]# redis-trib.rb reshard 172.31.24.139:6302
2) 然後查看“要下線的master” 中slot個數已經爲0
[root@redis01-jp ~]# redis-trib.rb info 172.31.24.139:6300
172.31.24.139:6300 (42050de2...) -> 2 keys | 7461 slots | 2 slaves.
172.31.24.140:6300 (b233ca19...) -> 0 keys | 4461 slots | 1 slaves.
172.31.24.139:6302 (0d49e2f3...) -> 0 keys | 0 slots | 0 slaves.
172.31.24.141:6300 (9681bbeb...) -> 0 keys | 4462 slots | 1 slaves.
[OK] 2 keys in 4 masters.
0.00 keys per slot on average.
3) 然後刪除“要下線master”的slave服務器,如下操作:
[root@redis01-jp ~]# redis-trib.rb del-node 172.31.24.139:6300 d812a49c622618b6687909df97748b6097f754b4

>> Removing node d812a49c622618b6687909df97748b6097f754b4 from cluster 172.31.24.139:6300
>> Sending CLUSTER FORGET messages to the cluster...
>> SHUTDOWN the node.
4) 再次檢查集羣中各節點的id號
[root@redis01-jp ~]# redis-trib.rb check 172.31.24.139:6300
>> Performing Cluster Check (using node 172.31.24.139:6300)
M: 42050de2234507bf2e8d930f8d6b0813f432f321 172.31.24.139:6300
slots:0-6461,10923-11921 (7461 slots) master
1 additional replica(s)
M: b233ca19c537ae80bdbde10e62ca231d74b00e8e 172.31.24.140:6300
slots:6462-10922 (4461 slots) master
1 additional replica(s)
S: c89dee58171151173e54f5a6442c885a927debca 172.31.24.140:6301
slots: (0 slots) slave
replicates 9681bbeb1eccdccc3ee132e33295f7b8b3bd230c
S: 17a155fadb540d0d4fe76365e16f767d07b6adc2 172.31.24.139:6301
slots: (0 slots) slave
replicates b233ca19c537ae80bdbde10e62ca231d74b00e8e
S: 8750f7512a1a757b1b9e2a931137b135a7ebdc8b 172.31.24.141:6301
slots: (0 slots) slave
replicates 42050de2234507bf2e8d930f8d6b0813f432f321
M: 9681bbeb1eccdccc3ee132e33295f7b8b3bd230c 172.31.24.141:6300
slots:11922-16383 (4462 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.

節點下線,5.0用法
1) 需要先將“要下線的master” 中的slot遷移到其它節點
redis-cli --cluster reshard 192.168.170.132:6379
2)然後刪除“要下線master”的slave服務器,如下操作:
redis-cli --cluster del-node 192.168.170.132:6379
3) 再次檢查集羣中各節點的id號
redis-cli --cluster dheck 192.168.170.132"6379

引用4.0基礎命令,5.0外部操作的全部替換爲redis-cli --cluster.
實例關閉命令
redid-cli shutdown 說明:關閉時強制 bgsave 所以需要一些時間
注:在start時,需要先加載數據到內存,數據加載完畢之後 redis 纔會listen 端口
集羣相關命令
1、CLUSTER INFO 打印集羣的信息
2、CLUSTER NODES 列出集羣當前已知的所有節點(node),以及這些節點的相關信息。
3、CLUSTER FAILOVER 手動故障轉移,需要在slave節點上執行
節點 相關命令
1、CLUSTER MEET <ip> <port> 將 ip 和 port 所指定的節點添加到集羣當中,讓它成爲集羣的一份子。
2、CLUSTER FORGET <node_id> 從集羣中移除 node_id 指定的節點。
3、CLUSTER REPLICATE <node_id> 將當前節點設置爲 node_id 指定的節點的從節點。
4、CLUSTER SAVECONFIG 將節點的配置文件保存到硬盤裏面。
槽(slot)相關命令
1、CLUSTER ADDSLOTS <slot> [slot ...] 將一個或多個槽(slot)指派(assign)給當前節點。
2、CLUSTER DELSLOTS <slot> [slot ...] 移除一個或多個槽對當前節點的指派。
3、CLUSTER FLUSHSLOTS 移除指派給當前節點的所有槽,讓當前節點變成一個沒有指派任何槽的節點。
4、CLUSTER SETSLOT <slot> NODE <node_id> 將槽 slot 指派給 node_id 指定的節點,如果槽已經指派給另一個節點,那麼先讓另一個節點刪除該槽,然後再進行指派。
1)、CLUSTER SETSLOT <slot> MIGRATING <node_id> 將本節點的槽 slot 遷移到 node_id 指定的節點中。
2)、CLUSTER SETSLOT <slot> IMPORTING <node_id> 從 node_id 指定的節點中導入槽 slot 到本節點。
3)、CLUSTER SETSLOT <slot> STABLE 取消對槽 slot 的導入(import)或者遷移(migrate)。
鍵相關命令
1、CLUSTER KEYSLOT <key> 計算鍵 key 應該被放置在哪個槽上。
2、CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的鍵值對數量。
3、CLUSTER GETKEYSINSLOT <slot> <count> 返回 count 個 slot 槽中的鍵。
不支持的命令:
1、不支持SELECT 命令,集羣只使用數據庫 0
2、不支持多個KEY的操作 如 MSET、SUION、SINTER等命令 (因爲KEYS 無法hash到同一個slot中)
redis-trib.rb 相關命令
1、redis-trib.rb create [--replicas N] host:ip [host:ip ...] 創建集羣
2、redis-trib.rb add-node host:ip host:ip 將前面的host:ip 添加到集羣中
3、redis-trib.rb check host:ip 檢查集羣的狀態
4、redis-trib.rb reshard host:ip OR redis-trib.rb reshard --from host:port --to host:port --slots --yes集羣重新分片
5、redis-trib.rb del-node host:ip 'NODE ID' 將節點從集羣中移除

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章