91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Redis 集群搭建詳細指南

發布時間:2020-07-19 02:21:52 來源:網絡 閱讀:606 作者:xmgdc 欄目:建站服務器

先有雞還是先有蛋?

最近有朋友問了一個問題,說畢業后去大城市還是小城市?去大公司還是小公司?我的回答都是大城市!大公司!
為什么這么說呢,你想一下,無論女孩男孩找朋友都喜歡找個子高胸大的。同樣的道理嘛,「大」總有大的好。
當然,如果你要有能力找一個胸大個子高就更完美了。

Redis 集群簡介

Redis 是一個開源的 key-value 存儲系統,由于出眾的性能,大部分互聯網企業都用來做服務器端緩存。Redis 在3.0版本前只支持單實例模式,雖然支持主從模式、哨兵模式部署來解決單點故障,但是現在互聯網企業動輒大幾百G的數據,可完全是沒法滿足業務的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。

Redis 集群采用了P2P的模式,完全去中心化。Redis 把所有的 Key 分成了 16384 個 slot,每個 Redis 實例負責其中一部分 slot 。集群中的所有信息(節點、端口、slot等),都通過節點之間定期的數據交換而更新。
Redis 客戶端可以在任意一個 Redis 實例發出請求,如果所需數據不在該實例中,通過重定向命令引導客戶端訪問所需的實例。

隨隨便便搭建一個集群

安裝部署任何一個應用其實都很簡單,只要安裝步驟一步一步來就行了。下面說一下 Redis 集群搭建規劃,由于集群至少需要6個節點(3主3從模式),所以,沒有這么多機器給我玩,我本地也起不了那么多虛擬機(電腦太爛),現在計劃是在一臺機器上模擬一個集群,當然,這和生產環境的集群搭建沒本質區別。

我現在就要在已經有安裝了 Redis 的一個 CentOS 下開始進行集群搭建,如果你還不是很清楚 Linux 下如何安裝 Redis ,可以去看這一篇文章《了解一下 Redis 并在 CentOS 下進行安裝配置》。請注意,下面所有集群搭建環境都基于已安裝好的 Redis 做的。

1.創建文件夾
我們計劃集群中 Redis 節點的端口號為 9001-9006 ,端口號即集群下各實例文件夾。數據存放在 端口號/data 文件夾中。

Redis 集群搭建詳細指南

mkdir /usr/local/redis-cluster
cd redis-cluster/
mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data

2.復制執行腳本
在 /usr/local/redis-cluster 下創建 bin 文件夾,用來存放集群運行腳本,并把安裝好的 Redis 的 src 路徑下的運行腳本拷貝過來。看命令:

mkdir redis-cluster/bin
cd /usr/local/redis/src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin

3.復制一個新 Redis 實例
我們現在從已安裝好的 Redis 中復制一個新的實例到 9001 文件夾,并修改 redis.conf 配置。

Redis 集群搭建詳細指南

cp /usr/local/redis/* /usr/local/redis-cluster/9001

注意,修改 redis.conf 配置和單點唯一區別是下圖部分,其余還是常規的這幾項:

port 9001(每個節點的端口號)
daemonize yes
bind 192.168.119.131(綁定當前機器 IP)
dir /usr/local/redis-cluster/9001/data/(數據文件存放位置)
pidfile /var/run/redis_9001.pid(pid 9001和port要對應)
cluster-enabled yes(啟動集群模式)
cluster-config-file nodes9001.conf(9001和port要對應)
cluster-node-timeout 15000
appendonly yes

集群搭建配置重點就是取消下圖中的這三個配置:
Redis 集群搭建詳細指南

4.再復制出五個新 Redis 實例
我們已經完成了一個節點了,其實接下來就是機械化的再完成另外五個節點,其實可以這么做:把 9001 實例 復制到另外五個文件夾中,唯一要修改的就是 redis.conf 中的所有和端口的相關的信息即可,其實就那么四個位置。開始操作,看圖:

Redis 集群搭建詳細指南

\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9002
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9003
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9004
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9005
\cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9006

\cp -rf 命令是不使用別名來復制,因為 cp 其實是別名 cp -i,操作時會有交互式確認,比較煩人。

5.修改 9002-9006 的 redis.conf 文件
其實非常簡單了,你通過搜索會發現其實只有四個點需要修改,我們全局替換下吧,進入相應的節點文件夾,做替換就好了。命令非常簡單,看圖:

Redis 集群搭建詳細指南

vim redis.conf
:%s/9001/9002g

回車后,就會有替換幾個地方成功的提示,不放心可以手工檢查下:

Redis 集群搭建詳細指南

其實我們也就是替換了下面這四行:

port 9002
dir /usr/local/redis-cluster/9002/data/
cluster-config-file nodes-9002.conf
pidfile /var/run/redis_9002.pid

到這里,我們已經把最基本的環境搞定了,接下來就是啟動了。

其實我們已經幾乎搭建好了

1.啟動 9001-9006 六個節點
少廢話,直接看圖:
Redis 集群搭建詳細指南

/usr/local/bin/redis-server /usr/local/redis-cluster/9001/redis.conf 
/usr/local/bin/redis-server /usr/local/redis-cluster/9002/redis.conf 
/usr/local/bin/redis-server /usr/local/redis-cluster/9003/redis.conf 
/usr/local/bin/redis-server /usr/local/redis-cluster/9004/redis.conf 
/usr/local/bin/redis-server /usr/local/redis-cluster/9005/redis.conf 
/usr/local/bin/redis-server /usr/local/redis-cluster/9006/redis.conf

可以檢查一下是否啟動成功:ps -el | grep redis
看的出來,六個節點已經全部啟動成功了。

2.隨便找一個節點測試試

/usr/local/redis-cluster/bin/redis-cli -h 192.168.119.131 -p 9001

set name mafly

Redis 集群搭建詳細指南

連接成功了,但好像報錯了阿???
(error) CLUSTERDOWN Hash slot not served(不提供集群的散列槽),這是什么鬼?
這是因為雖然我們配置并啟動了 Redis 集群服務,但是他們暫時還并不在一個集群中,互相直接發現不了,而且還沒有可存儲的位置,就是所謂的slot(槽)

3.安裝集群所需軟件
由于 Redis 集群需要使用 ruby 命令,所以我們需要安裝 ruby 和相關接口。

yum install ruby
yum install rubygems
gem install redis

Redis 集群搭建詳細指南

這才是真正的創建集群

先不廢話,直接敲命令:

/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.119.131:9001 192.168.119.131:9002 192.168.119.131:9003 192.168.119.131:9004 192.168.119.131:9005 192.168.119.131:9006

Redis 集群搭建詳細指南

簡單解釋一下這個命令:調用 ruby 命令來進行創建集群,--replicas 1 表示主從復制比例為 1:1,即一個主節點對應一個從節點;然后,默認給我們分配好了每個主節點和對應從節點服務,以及 solt 的大小,因為在 Redis 集群中有且僅有 16383 個 solt ,默認情況會給我們平均分配,當然你可以指定,后續的增減節點也可以重新分配。

M: 10222dee93f6a1700ede9f5424fccd6be0b2fb73 為主節點Id

S: 9ce697e49f47fec47b3dc290042f3cc141ce5aeb 192.168.119.131:9004 replicates 10222dee93f6a1700ede9f5424fccd6be0b2fb73 從節點下對應主節點Id

目前來看,9001-9003 為主節點,9004-9006 為從節點,并向你確認是否同意這么配置。輸入 yes 后,會開始集群創建。

Redis 集群搭建詳細指南

上圖則代表集群搭建成功啦!!!

驗證一下:
依然是通過客戶端命令連接上,通過集群命令看一下狀態和節點信息等。

/usr/local/redis-cluster/bin/redis-cli -c -h 192.168.119.131 -p 9001
cluster info
cluster nodes

Redis 集群搭建詳細指南

通過命令,可以詳細的看出集群信息和各個節點狀態,主從信息以及連接數、槽信息等。這么看到,我們已經真的把 Redis 集群搭建部署成功啦!

設置一個 mafly:
你會發現,當我們 set name mafly 時,出現了 Redirected to slot 信息并自動連接到了9002節點。這也是集群的一個數據分配特性,這里不詳細說了。

Redis 集群搭建詳細指南

總結一下

這一篇 Redis 集群部署搭建的文章真的是一步一步的走下來的,只要你安裝我的步驟來,就保證你能成功搭建一個 Redis 集群玩玩,也可以這么說,除了步驟繁瑣外,幾乎不存在技術含量,估計能看完的人都感覺累

接下來可能就是動態擴容、增加節點和減少節點,重新分配槽大小等,當然,還有最重要的就是怎么和我們程序結合起來,以及如何更好的把 Redis 緩存集群發揮出應有的效果,這些才是最重要的。



向AI問一下細節

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

AI

五峰| 台北县| 广宗县| 灵武市| 酉阳| 怀柔区| 武山县| 金山区| 福建省| 宁晋县| 乌审旗| 石门县| 泌阳县| 囊谦县| 天等县| 峨边| 东宁县| 巫山县| 宁蒗| 兴安盟| 天台县| 韶山市| 塔城市| 子洲县| 军事| 游戏| 米泉市| 沧源| 蒲江县| 秭归县| 忻城县| 海伦市| 房产| 万盛区| 上饶县| 泰兴市| 塔城市| 孟村| 长沙市| 大名县| 双桥区|