中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Centos7 上部署 redis集群

發布時間:2020-07-06 09:56:11 來源:網絡 閱讀:609 作者:holy2009 欄目:建站服務器
一、安裝前看下redis5.0版本的新特性

先看一下 Redis 5 帶來的更新內容:

  1. 新的流數據類型(Stream data type) https://redis.io/topics/streams-intro
    2.新的 Redis 模塊 API:定時器、集群和字典 API(Timers, Cluster and Dictionary APIs)
  2. RDB 現在可存儲 LFU 和 LRU 信息
    4.redis-cli 中的集群管理器從 Ruby (redis-trib.rb) 移植到了 C 語言代碼。執行 redis-cli --cluster help 命令以了解更多信息
  3. 新的有序集合(sorted set)命令:ZPOPMIN/MAX 和阻塞變體(blocking variants)
  4. 升級 Active defragmentation 至 v2 版本
  5. 增強 HyperLogLog 的實現
  6. 更好的內存統計報告
  7. 許多包含子命令的命令現在都有一個 HELP 子命令
  8. 客戶端頻繁連接和斷開連接時,性能表現更好
  9. 許多錯誤修復和其他方面的改進
  10. 升級 Jemalloc 至 5.1 版本
  11. 引入 CLIENT UNBLOCK 和 CLIENT ID
  12. 新增 LOLWUT 命令 http://antirez.com/news/123
  13. 在不存在需要保持向后兼容性的地方,棄用 "slave" 術語
  14. 網絡層中的差異優化
  15. Lua 相關的改進:

將 Lua 腳本更好地傳播到 replicas / AOF

Lua 腳本現在可以超時并在副本中進入 -BUSY 狀態

  1. 引入動態的 HZ(Dynamic HZ) 以平衡空閑 CPU 使用率和響應性
  2. 對 Redis 核心代碼進行了重構并在許多方面進行了改進

Redis 5 是 Redis 引入流數據類型(Stream data type)的第一個版本。按照官方的說法,不使用該特性的用戶在生產環境中使用 Redis 5 會有更好的體驗 —— 雖然開發團隊尚未發現關于這項特性的關鍵錯誤。

此外,因為許多內部結構與 Redis 4 共享,因此在內部工作方式方面,變化不會很大。

詳細更新內容請查看:

https://raw.githubusercontent.com/antirez/redis/5.0/00-RELEASENOTES

二、安裝redis部分
1、環境
linux系統 centos 7.6版本
redis: redis5.0.5的 statble版本(redis-stable.tar.gz)
2、下載解壓安裝
#下載
wget http://download.redis.io/releases/redis-stable.tar.gz

#解壓
tar xzf redis-stable.tar.gz

#進入解壓文件
cd redis-stable

#編譯源碼
make install

#測試是否安裝成功
Centos7 上部署 redis集群
啟動成功表示安裝成功
上面只是一個臨時的啟動文件,需要一直連接需要改配置文件,順便集群的配置也一起設置了。

2、配置redis cluster集群
redis集群可以參考官網給出的教程https://redis.io/topics/cluster-tutorial

首先要復制多分redis.conf文件,修改以下配置,注意將端口號區分開

cat /data/redis-cluster/cluster-conf/7000/redis.conf | grep -v '#'

只貼出部分差異配置,其他的都用系統默認的,有需要自行更改。
配置里有不同目錄的自行創建, 也可以根據你自己想要求更改不同路徑下的。

bind 127.0.0.1
port 7000
pidfile /var/run/redis_7000.pid
logfile "/data/redis-cluster/redis-log/redis_7000.log"
dbfilename dump_7000.rdb
dir /data/redis-cluster/rdb/
appendonly yes

appendfilename "appendonly_7000.aof"
appendfsync everysec

mkdir -p /data/redis-cluster/cluster-conf
cd /data/redis-cluster/cluster-conf
mkdir 7000 7001 7002 7003 7004 7005
#先根據上面的配置修改一份7000/redis.conf的配置,初始的文件從redis-stable/src/redis.conf復制一份來做修改。

然后/data/redis-cluster/cluster-conf/7000/redis.conf的配置復制一份并替換不同端口目錄下的配置文件

cp /data/redis-cluster/cluster-conf/7000/redis.conf /data/redis-cluster/cluster-conf/7001/redis.conf

cp /data/redis-cluster/cluster-conf/7000/redis.conf /data/redis-cluster/cluster-conf/7002/redis.conf

cp /data/redis-cluster/cluster-conf/7000/redis.conf /data/redis-cluster/cluster-conf/7003/redis.conf

cp /data/redis-cluster/cluster-conf/7000/redis.conf /data/redis-cluster/cluster-conf/7004/redis.conf

cp /data/redis-cluster/cluster-conf/7000/redis.conf /data/redis-cluster/cluster-conf/7005/redis.conf

然后再將對應的配置文件放入進去后 啟動每個服務
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7000/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7001/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7002/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7003/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7004/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7005/redis.conf

#7000-7005服務啟動成功后,使用5.0特有的redis-cli功能開啟集群
/usr/local/bin/redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
?

這樣集群就起來了。

為了方便啟動,可以放一個腳本里啟動。如下腳本
[root@VM_0_6_centos src]# cat /data/redis-cluster/cluster-conf/start_all.sh
#!/bin/bash
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7000/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7001/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7002/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7003/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7004/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7005/redis.conf

/usr/local/bin/redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1

Centos7 上部署 redis集群
到這里就啟動了redis集群

三、查看且添加新集群

相關命令參考:https://redis.io/topics/cluster-tutorial
1、查看集群里的master是哪些
redis-cli -p 7000 cluster nodes | grep master
Centos7 上部署 redis集群

2、查看集群哪些是slave
redis-cli -p 7000 cluster nodes | grep slave
Centos7 上部署 redis集群

3、查看哪些對應connected
redis-cli -p 7000 cluster nodes | grep myself
redis-cli -p 7001 cluster nodes | grep myself
redis-cli -p 7002 cluster nodes | grep myself

Centos7 上部署 redis集群

4、添加新的master和slave
先創建兩個服務7006 7007的, 具體文件配置參考上面的7000-7005的
配置好對應的文件后用命令啟動
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7006/redis.conf
/usr/local/bin/redis-server /data/redis-cluster/cluster-conf/7007/redis.conf

因為上面啟動沒有加入到集群里,需要通過集群命令進行加入
加入集群命令
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000

另外一個新添加的slave也要加入對應的master上
#自動匹配空閑的 加入到對應的master上
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 --cluster-slave

或者根據指定的master ID 匹配上
#set master
#redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 --cluster-slave --cluster-master-id e508a26956ca359d1917cfd1f3dbb9a9fdd8c28f

---e508a26956ca359d1917cfd1f3dbb9a9fdd8c28f 通過redis-cli -p 7000 cluster nodes | grep master 可查看到對應7006的master id.

四、重啟集群和重建集群
重啟:
(保留原有集群的)重啟:
不需要再執行(如/usr/local/bin/redis-cli -a 'Good' --cluster create 172.17.0.6:7000 172.17.0.6:7001 172.17.0.6:7002 172.17.0.6:7003 172.17.0.6:7004 172.17.0.6:7005 172.17.0.6:7006 172.17.0.6:7007 --cluster-replicas 1這樣的)集群生成指令。

第一步:先關閉各個Redis節點。

第二步:再啟動各個Redis節點即可。

(刪除原有集群的)重啟:
需要執行(如/usr/local/bin/redis-cli -a 'Good' --cluster create 172.17.0.6:7000 172.17.0.6:7001 172.17.0.6:7002 172.17.0.6:7003 172.17.0.6:7004 172.17.0.6:7005 172.17.0.6:7006 172.17.0.6:7007 --cluster-replicas 1這樣的)集群生成指令。

第一步:先關閉各個Redis節點。

第二步:刪除各個Redis安裝目錄下的節點配置文件nodes.conf、數據文件dump.rdb。

說明:此方式相當于重置到剛剛創建集群的時候了,所以需要刪除節點配置文件nodes.conf、還需
? ? ? ? ??要刪除數據存儲文件dump.rdb。

五、Cluster相關的命令,現在對所有的命令所以下說明。

CLUSTER info:打印集群的信息。
CLUSTER nodes:列出集群當前已知的所有節點(node)的相關信息。
CLUSTER meet <ip> <port>:將ip和port所指定的節點添加到集群當中。
CLUSTER addslots <slot> [slot ...]:將一個或多個槽(slot)指派(assign)給當前節點。
CLUSTER delslots <slot> [slot ...]:移除一個或多個槽對當前節點的指派。
CLUSTER slots:列出槽位、節點信息。
CLUSTER slaves <node_id>:列出指定節點下面的從節點信息。
CLUSTER replicate <node_id>:將當前節點設置為指定節點的從節點。
CLUSTER saveconfig:手動執行命令保存保存集群的配置文件,集群默認在配置修改的時候會自動保存配置文件。
CLUSTER keyslot <key>:列出key被放置在哪個槽上。
CLUSTER flushslots:移除指派給當前節點的所有槽,讓當前節點變成一個沒有指派任何槽的節點。
CLUSTER countkeysinslot <slot>:返回槽目前包含的鍵值對數量。
CLUSTER getkeysinslot <slot> <count>:返回count個槽中的鍵。

CLUSTER setslot <slot> node <node_id> 將槽指派給指定的節點,如果槽已經指派給另一個節點,那么先讓另一個節點刪除該槽,然后再進行指派。
CLUSTER setslot <slot> migrating <node_id> 將本節點的槽遷移到指定的節點中。
CLUSTER setslot <slot> importing <node_id> 從 node_id 指定的節點中導入槽 slot 到本節點。
CLUSTER setslot <slot> stable 取消對槽 slot 的導入(import)或者遷移(migrate)。

CLUSTER failover:手動進行故障轉移。
CLUSTER forget <node_id>:從集群中移除指定的節點,這樣就無法完成握手,過期時為60s,60s后兩節點又會繼續完成握手。
CLUSTER reset [HARD|SOFT]:重置集群信息,soft是清空其他節點的信息,但不修改自己的id,hard還會修改自己的id,不傳該參數則使用soft方式。

CLUSTER count-failure-reports <node_id>:列出某個節點的故障報告的長度。
CLUSTER SET-CONFIG-EPOCH:設置節點epoch,只有在節點加入集群前才能設置。

其他參考文章鏈接:
Redis-5.0.0集群配置
https://www.cnblogs.com/aquester/p/9891465.html

redis學習之集群報錯Node is not empty
https://blog.csdn.net/wudalang_gd/article/details/52153571

redis初試Not all 16384 slots are covered by nodes
https://www.cnblogs.com/dupang/p/5631007.html

Redis Cluster部署、管理和測試
https://www.cnblogs.com/zhoujinyi/p/6477133.html

參考:https://blog.csdn.net/justry_deng/article/details/89205155

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天等县| 山东省| 嘉荫县| 都江堰市| 禄劝| 扶沟县| 财经| 修文县| 扎赉特旗| 昌乐县| 兰溪市| 西贡区| 临湘市| 江油市| 新干县| 泸溪县| 富源县| 宣化县| 玛纳斯县| 杨浦区| 东宁县| 手游| 昂仁县| 略阳县| 宜良县| 南陵县| 东乌珠穆沁旗| 图木舒克市| 临潭县| 蒙自县| 东丰县| 务川| 库尔勒市| 黄冈市| 克拉玛依市| 彝良县| 抚州市| 桂阳县| 白银市| 交城县| 和林格尔县|