redis 運維經常使用命令

CLUSTER INFO 打印集羣的信息  html

CLUSTER NODES 列出集羣當前已知的全部節點(node),以及這些節點的相關信息。   node

  //節點(node)  redis

CLUSTER MEET <ip> <port> 將 ip 和 port 所指定的節點添加到集羣當中,讓它成爲集羣的一份子。  sql

CLUSTER FORGET <node_id> 從集羣中移除 node_id 指定的節點。  ruby

CLUSTER REPLICATE <node_id> 將當前節點設置爲 node_id 指定的節點的從節點。  nosql

CLUSTER SAVECONFIG 將節點的配置文件保存到硬盤裏面。   url

  //槽(slot)  .net

CLUSTER ADDSLOTS <slot> [slot ...] 將一個或多個槽(slot)指派(assign)給當前節點。  server

CLUSTER DELSLOTS <slot> [slot ...] 移除一個或多個槽對當前節點的指派。  htm

CLUSTER FLUSHSLOTS 移除指派給當前節點的全部槽,讓當前節點變成一個沒有指派任何槽的節點。  

CLUSTER SETSLOT <slot> NODE <node_id> 將槽 slot 指派給 node_id 指定的節點,若是槽已經指派給另外一個節點,那麼先讓另外一個節點刪除該槽>,而後再進行指派。  

CLUSTER SETSLOT <slot> MIGRATING <node_id> 將本節點的槽 slot 遷移到 node_id 指定的節點中。  

CLUSTER SETSLOT <slot> IMPORTING <node_id> 從 node_id 指定的節點中導入槽 slot 到本節點。  

CLUSTER SETSLOT <slot> STABLE 取消對槽 slot 的導入(import)或者遷移(migrate)。   

  //鍵 (key)  

CLUSTER KEYSLOT <key> 計算鍵 key 應該被放置在哪一個槽上。  

CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的鍵值對數量。  

CLUSTER GETKEYSINSLOT <slot> <count> 返回 count 個 slot 槽中的鍵。  

 

http://wenku.baidu.com/link?url=95fErDdvPOyeE426qhPhywbRubpG8tv17jOI2yQc8VI-kO51RN4z0TCHSqwrPPgYymj_1Pek37z-14ovKOScjUf1qi0hetIU6XEpagx4h0W

http://blog.51yip.com/nosql/1726.html/comment-page-1

http://hot66hot.iteye.com/blog/2050676/

http://blog.csdn.net/huwei2003/article/details/50973967

安裝步驟

wget http://download.redis.io/releases/redis-3.2.1.tar.gz

tar -zxvf redis-3.2.1.tar.gz

cd redis-3.2.1

make && make install

mkdir /home/redis

cd /home/redis 

mkdir 7000 7002 7003 7004 7005

修改redis.conf

port 7000 

daemonize yes 

cluster-enabled yes  

cluster-config-file nodes.conf 

cluster-node-timeout 5000 

bind 172.16.97.5 必須綁定真實IP,不然集羣啓動不了

修改完之後複製6分到對應目錄而且改爲對應的端口和名稱

啓動全部的實例

/home/redis/redis-3.2.1/src/redis-server /home/redis/7000/redis.7000.conf

安裝ruby

yum install ruby ruby-devel rubygems

gem 安裝 redis ruby 接口

gem install redis,

wget https://rubygems.org/downloads/redis-3.3.0.gem, 安裝包安裝 gem install -l /data/soft/redis-3.0.0.gem  

rm -rf /home/redis/7000/dump.rdb nodes.conf

rm -rf /home/redis/7001/dump.rdb nodes.conf

rm -rf /home/redis/7002/dump.rdb nodes.conf

rm -rf /home/redis/7003/dump.rdb nodes.conf

rm -rf /home/redis/7004/dump.rdb nodes.conf

rm -rf /home/redis/7005/dump.rdb nodes.conf

 

   /home/redis/redis-3.2.1/src/redis-server /home/redis/redis.7000.conf

   /home/redis/redis-3.2.1/src/redis-server /home/redis/redis.7001.conf

   /home/redis/redis-3.2.1/src/redis-server /home/redis/redis.7002.conf

   /home/redis/redis-3.2.1/src/redis-server /home/redis/redis.7003.conf

   /home/redis/redis-3.2.1/src/redis-server /home/redis/redis.7004.conf

   /home/redis/redis-3.2.1/src/redis-server /home/redis/redis.7005.conf

建立集羣 replicas 表示爲集羣中的master 分配幾個slave 節點

/home/redis/redis-3.2.1/src/redis-trib.rb  create --replicas 1 172.16.97.5:7000 172.16.97.10:7002 172.16.97.18:7004   172.16.97.10:7003 172.16.97.5:7001  172.16.97.18:7005

集羣建立成功

查看集羣狀態 /home/redis/redis-3.2.1/src/redis-trib.rb check 172.16.97.5:7000

進入集羣  /home/redis/redis-3.2.1/src/redis-cli -c -h 172.16.97.5 -p 7000

 

添加主節點

1:啓動一個新節點

2:redis-trib.rb add-node 172.16.97.5:7006  172.16.97.5:7000

3 註釋:172.16.97.5:7006 爲新節點,172.16.97.5:7000 爲集羣中的任意主節點

 

 

添加從節點

  redis-trib.rb add-node --slave --master-id 03ccad2ba5dd1e062464bc7590400441fafb63f2 172.16.97.5:7007  172.16.97.5:7000

--slave,表示添加的是從節點

--master-id 03ccad2ba5dd1e062464bc7590400441fafb63f2,主節點的nodeid,在這裏是前面新添加的7006的nodeid

172.16.97.5:7007 新節點

172.16.97.5:7000集羣任一個主節點

從新shard slot

redis-trib.rb reshard 172.16.97.5:7000

改變從節點的master

redis-cli -c -p 172.16.97.5:7007

輸入命令:cluster replicate 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052  //新master的nodeid 

 

刪除從節點:

    redis-trib.rb del-node 172.16.97.5:7007 9c240333476469e8e2c8e80b089c48f389827265

刪除主節點

若是主節點有從節點,將從節點轉移到其餘主節點

若是主節點有slot,去掉分配的slot,而後再刪除主節點

redis-trib.rb reshard 172.16.97.5:7006

redis-trib.rb del-node 172.16.97.5:7006 03ccad2ba5dd1e062464bc7590400441fafb63f2

導入數據

/home/redis/redis-3.2.1/src/redis-trib.rb import --from  172.16.97.3:6380 172.16.97.5:7000 

上面的命令是把 172.16.97.3:6380(redis 2.8)上的數據導入到 172.16.97.5:7000 這個節點所在的集羣

redis-cli -p 6380 -n 1 keys '*' | xargs -I '{}' redis-cli -p 6380  -n 1 move '{}' 0

把 database 1的Key move 到 database 0

redis-cli -p 6379 -n 2 keys '*' | xargs -I '{}' redis-cli -p  6379 -n 2  migrate 172.16.97.17 6379 '{}' 2 1000 

COPY and REPLACE are available only in 3.0 and above. KEYS is available 

/home/redis-2.8.13/src/redis-cli -p 6380 -n 1 keys '*' | xargs -I '{}' /home/redis-2.8.13/src/redis-cli -p  6380 -n 1  migrate 172.16.97.5 7000 '{}' 1 1000 

cat /tmp/users.txt | xargs -I '{}' /home/redis/redis-3.2.3/src/redis-cli -h 172.16.97.10 -p 7000 -n 1 sadd downip:mail:users '{}'

相關文章
相關標籤/搜索