1. 介紹node
2. 集羣的不足:redis
1. 準備配置文件
建立cluster目錄,並建立6個配置文件ruby
2. 修改配置文件app
port 7000 //端口7000,7002,7003..
daemonize yes //redis後臺運行
pidfile ./redis_7000.pid //pidfile文件對應7000,7001,7002
cluster-enabled yes //開啓集羣 把註釋#去掉
cluster-config-file nodes_7000.conf //集羣的配置 配置文件首次啓動自動生成 7000,7001,7002
cluster-node-timeout 15000 //請求超時 默認15秒,可自行設置
appendonly yes //aof日誌開啓 有須要就開啓,它會每次寫操做都記錄一條日誌
//若設置密碼,master和slave需同時配置下面兩個參數:
masterauth "12345678" //鏈接master的密碼
requirepass "12345678" //本身的密碼
3. 啓動、測試全部redis實例性能
4. 安裝redis-trib所需的 ruby腳本
ruby redis-trib.rb //測試是否安裝成功,若已經安裝過,可跳過此步測試
安裝ui
cp /usr/andy/redis/redis-3.2.0/src/redis-trib.rb .
yum install ruby
yum install rubygems
gem install redis-3.2.2.gem //需下載redis-3.2.2.gem
5. 使用redis-trib.rb建立集羣
執行下面命令建立集羣(需爲真實ip,否則外網沒法訪問):spa
./redis-trib.rb create --replicas 1 192.168.0.217:7000 192.168.0.217:7001 192.168.0.217:7002 192.168.0.217:7003 192.168.0.217:7004 192.168.0.217:7005
能夠看到:.net
一、測試存取值3d
登陸從節點,查看
二、主從切換
結束主節點7000進程,發現7003成了master,而7000節點的狀態爲fail
恢復7000節點,發現變成了7003的slave
集羣
cluster info :打印集羣的信息
cluster nodes :列出集羣當前已知的全部節點( node),以及這些節點的相關信息。
節點
cluster meet ip port:將 ip 和 port 所指定的節點添加到集羣當中,讓它成爲集羣的一份子。 cluster forget <node_id> :從集羣中移除 node_id 指定的節點。 cluster replicate <node_id> :將當前節點設置爲 node_id 指定的節點的從節點。 cluster saveconfig :將節點的配置文件保存到硬盤裏面。
槽(slot)
cluster addslots <slot> [slot ...] :將一個或多個槽( slot)指派( assign)給當前節點。 cluster delslots <slot> [slot ...] :移除一個或多個槽對當前節點的指派。 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)。
鍵
cluster keyslot <key> :計算鍵 key 應該被放置在哪一個槽上。 cluster countkeysinslot <slot> :返回槽 slot 目前包含的鍵值對數量。 cluster getkeysinslot <slot> <count> :返回 count 個 slot 槽中的鍵
下面是經常使用的參數:
一、create:建立集羣
二、check:檢查集羣
三、info:查看集羣信息
四、fix:修復集羣
五、reshard:在線遷移slot
六、rebalance:平衡集羣節點slot數量
七、add-node:將新節點加入集羣
八、del-node:從集羣中刪除節點
九、set-timeout:設置集羣節點間心跳鏈接的超時時間
十、call:在集羣所有節點上執行命令
十一、import:將外部redis數據導入集羣