redis基礎命令與擴容命令集錦

前言

一:redis基礎命令

1、創建集羣:redis-cli --cluster create --cluster-replicas 1 節點IP地址1:端口... 節點IP地址n:端口

2、遠程登錄redis數據庫:redis-cli -h 192.168.233.100 -p 6379 -c

  • -c:連接集羣結點時使用,此選項可防止moved和ask異常

3、查看集羣信息:可登陸redis數據庫中,輸入cluster info查詢集羣狀態也可使用命令 redis-cli --cluster info 節點ip:6379

4、查看集羣slave、slot、key分佈信息情況

  • [root@master1 ~]# redis-cli --cluster info 192.168.100.41:6379
    192.168.100.41:6379 (7f112f82...) -> 4 keys | 5461 slots | 1 slaves.
    192.168.100.42:6379 (df195a34...) -> 1 keys | 5462 slots | 1 slaves.
    192.168.100.43:6379 (a233a235...) -> 2 keys | 5461 slots | 1 slaves.
    [OK] 7 keys in 3 masters.
    0.00 keys per slot on average.
    

二:redis擴容命令

1、將redis節點添加到集羣:進入集羣中一個節點添加

  • [root@master1 ~]# redis-cli --cluster add-node 192.168.100.47:6379 192.168.100.41:6379	'//redis-cli --cluster add-node 新節點IP:端口號 當前集羣中已存在的任意節點IP:端口號'
        
    

2、刪除節點:redis-cli --cluster del-node 集羣任意目標節點IP:端口號 要刪除的節點ID

  • 刪除節點仍需刪除節點的數據文件

  • [root@master1 ~]# cd /var/lib/redis/6379/
    [root@master1 6379]# ls
    appendonly.aof  dump.rdb  nodes-6379.conf
    [root@master1 6379]# rm -rf *
    

3、遷移redis槽位

  • [root@master1 ~]# redis-cli --cluster reshard 192.168.100.41:6379
    How many slots do you want to move (from 1 to 16384)? 4096  '//要遷移多少個槽'
    
    What is the receiving node ID? 99521b7fd126b694bcb9a22ffa5a490f31f66543  '//遷移到哪個節點,數據節點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.
    
    '//要求輸入源節點的id,這裏因爲原本有三個節點,輸入done表示結束'
    Source node #1: 7f112f82bcf28a5d0627ea81b48cb76f4ea8605d
    Source node #2: df195a34a91d756157a0fda7c71e99d5bd8fad09
    Source node #3: a233a23541f431107fed79908318394d8bb30b51
    Source node #4: done
    
    '//最後會有一個遷移方案,輸入yes表示同意,遷移開始。輸入no表示不同意,重新設置遷移方案。'
    
    '//確認是否遷移成功'
    [root@master1 ~]# redis-cli -h 192.168.100.41 -p 6379
    192.168.100.41:6379> cluster nodes
        ...省略內容
    

4、遷移後檢測各個節點槽的均衡性

  • [root@master1 ~]# redis-cli --cluster rebalance 192.168.100.41:6379
    >>> Performing Cluster Check (using node 192.168.100.41:6379)
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.
    *** No rebalancing needed! All nodes are within the 2.00% threshold.
    可以看出,節點負責的槽數據差異在2%以內,因此槽分配均衡
    

5、爲擴容的主節點添加從節點

  • 
    root@master1 ~]# redis-cli -h 192.168.100.48 -p 6379	'//登陸redis數據庫'
    192.168.100.48:6379> cluster replicate 99521b7fd126b694bcb9a22ffa5a490f31f66543	'//添加從節點id'
    OK
    192.168.100.48:6379> cluster nodes	'//查看節點信息'
        ...省略內容
    

6、平衡各節點槽數量

  • [root@master1 ~]# redis-cli --cluster rebalance --cluster-threshold 1 192.168.100.41:6379
    >>> Performing Cluster Check (using node 192.168.100.41:6379)
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.
    *** No rebalancing needed! All nodes are within the 1.00% threshold.
    
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章