Redis集群搭建與簡單使用介紹安裝環(huán)境與版本 用兩臺虛擬機(jī)模擬6個(gè)節(jié)點(diǎn),,一臺機(jī)器3個(gè)節(jié)點(diǎn),創(chuàng)建出3 master,、3 salve 環(huán)境。 redis 采用 redis-3.2.4 版本,。 兩臺虛擬機(jī)都是 CentOS ,,一臺 CentOS6.5 (IP:192.168.31.245),一臺 CentOS7(IP:192.168.31.210) ,。 安裝過程 1. 下載并解壓 cd /root/software wget http: //download .redis.io /releases/redis-3 .2.4. tar .gz tar -zxvf redis-3.2.4. tar .gz 2. 編譯安裝 cd redis-3.2.4 make && make install 3. 將 redis-trib.rb 復(fù)制到 /usr/local/bin 目錄下 cd src cp redis-trib.rb /usr/local/bin/ 4. 創(chuàng)建 Redis 節(jié)點(diǎn) 首先在 192.168.31.245 機(jī)器上 /root/software/redis-3.2.4 目錄下創(chuàng)建 redis_cluster 目錄,; mkdir redis_cluster 在 redis_cluster 目錄下,創(chuàng)建名為7000,、7001,、7002的目錄,并將 redis.conf 拷貝到這三個(gè)目錄中 mkdir 7000 7001 7002<br>cp redis.conf redis_cluster/7000 cp redis.conf redis_cluster/7001 cp redis.conf redis_cluster/7002 分別修改這三個(gè)配置文件,,修改如下內(nèi)容 按 Ctrl+C 復(fù)制代碼 按 Ctrl+C 復(fù)制代碼
5. 啟動各個(gè)節(jié)點(diǎn) 第一臺機(jī)器上執(zhí)行 redis-server redis_cluster/7000/redis.conf redis-server redis_cluster/7001/redis.conf redis-server redis_cluster/7002/redis.conf 另外一臺機(jī)器上執(zhí)行 redis-server redis_cluster/7003/redis.conf redis-server redis_cluster/7004/redis.conf redis-server redis_cluster/7005/redis.conf 6. 檢查 redis 啟動情況 ##一臺機(jī)器<br>ps -ef | grep redis root 61020 1 0 02:14 ? 00:00:01 redis-server 127.0.0.1:7000 [cluster] root 61024 1 0 02:14 ? 00:00:01 redis-server 127.0.0.1:7001 [cluster] root 61029 1 0 02:14 ? 00:00:01 redis-server 127.0.0.1:7002 [cluster] netstat -tnlp | grep redis tcp 0 0 127.0.0.1:17000 0.0.0.0:* LISTEN 61020/redis-server tcp 0 0 127.0.0.1:17001 0.0.0.0:* LISTEN 61024/redis-server tcp 0 0 127.0.0.1:17002 0.0.0.0:* LISTEN 61029/redis-server tcp 0 0 127.0.0.1:7000 0.0.0.0:* LISTEN 61020/redis-server tcp 0 0 127.0.0.1:7001 0.0.0.0:* LISTEN 61024/redis-server tcp 0 0 127.0.0.1:7002 0.0.0.0:* LISTEN 61029/redis-server 1 2 3 4 5 6 7 8 9 10 11 12 13 ##另外一臺機(jī)器 ps -ef | grep redis root 9957 1 0 02:32 ? 00:00:01 redis-server 127.0.0.1:7003 [cluster] root 9964 1 0 02:32 ? 00:00:01 redis-server 127.0.0.1:7004 [cluster] root 9971 1 0 02:32 ? 00:00:01 redis-server 127.0.0.1:7005 [cluster] root 10065 4744 0 02:38 pts/0 00:00:00 grep --color=auto redis netstat -tlnp | grep redis tcp 0 0 127.0.0.1:17003 0.0.0.0:* LISTEN 9957/redis-server 1 tcp 0 0 127.0.0.1:17004 0.0.0.0:* LISTEN 9964/redis-server 1 tcp 0 0 127.0.0.1:17005 0.0.0.0:* LISTEN 9971/redis-server 1 tcp 0 0 127.0.0.1:7003 0.0.0.0:* LISTEN 9957/redis-server 1 tcp 0 0 127.0.0.1:7004 0.0.0.0:* LISTEN 9964/redis-server 1 tcp 0 0 127.0.0.1:7005 0.0.0.0:* LISTEN 9971/redis-server 1 7.創(chuàng)建集群 Redis 官方提供了 redis-trib.rb 這個(gè)工具,,就在解壓目錄的 src 目錄中,,第三步中已將它復(fù)制到 /usr/local/bin 目錄中,可以直接在命令行中使用了,。使用下面這個(gè)命令即可完成安裝,。 redis-trib.rb create --replicas 1 192.168.31.245:7000 192.168.31.245:7001 192.168.31.245:7002 192.168.31.210:7003 192.168.31.210:7004 192.168.31.210:7005 其中,,前三個(gè) ip:port 為第一臺機(jī)器的節(jié)點(diǎn),,剩下三個(gè)為第二臺機(jī)器,。 等等,出錯(cuò)了,。這個(gè)工具是用 ruby 實(shí)現(xiàn)的,,所以需要安裝 ruby。安裝命令如下: yum -y install ruby ruby-devel rubygems rpm-build
之后再運(yùn)行 redis-trib.rb 命令,,會出現(xiàn)如下提示: 輸入 yes 即可,,然后出現(xiàn)如下內(nèi)容,,說明安裝成功,。
8. 集群驗(yàn)證 在第一臺機(jī)器上連接集群的7002端口的節(jié)點(diǎn),,在另外一臺連接7005節(jié)點(diǎn),連接方式為 redis-cli -h 192.168.31.245 -c -p 7002 ,加參數(shù) -C 可連接到集群,,因?yàn)樯厦?redis.conf 將 bind 改為了ip地址,,所以 -h 參數(shù)不可以省略。 在7005節(jié)點(diǎn)執(zhí)行命令 set hello world ,執(zhí)行結(jié)果如下:
然后在另外一臺7002端口,查看 key 為 hello 的內(nèi)容,, get hello ,,執(zhí)行結(jié)果如下: 說明集群運(yùn)作正常,。 簡單說一下原理 redis cluster在設(shè)計(jì)的時(shí)候,,就考慮到了去中心化,,去中間件,,也就是說,,集群中的每個(gè)節(jié)點(diǎn)都是平等的關(guān)系,都是對等的,,每個(gè)節(jié)點(diǎn)都保存各自的數(shù)據(jù)和整個(gè)集群的狀態(tài),。每個(gè)節(jié)點(diǎn)都和其他所有節(jié)點(diǎn)連接,而且這些連接保持活躍,,這樣就保證了我們只需要連接集群中的任意一個(gè)節(jié)點(diǎn),,就可以獲取到其他節(jié)點(diǎn)的數(shù)據(jù),。 Redis 集群沒有并使用傳統(tǒng)的一致性哈希來分配數(shù)據(jù),,而是采用另外一種叫做 Redis 集群會把數(shù)據(jù)存在一個(gè) master 節(jié)點(diǎn),然后在這個(gè) master 和其對應(yīng)的salve 之間進(jìn)行數(shù)據(jù)同步,。當(dāng)讀取數(shù)據(jù)時(shí),也根據(jù)一致性哈希算法到對應(yīng)的 master 節(jié)點(diǎn)獲取數(shù)據(jù),。只有當(dāng)一個(gè)master 掛掉之后,,才會啟動一個(gè)對應(yīng)的 salve 節(jié)點(diǎn),充當(dāng) master 。 需要注意的是:必須要
人生沒有回頭路,,珍惜當(dāng)下。
|
|