linux安裝redis 部署redis集群


linux安裝redis 部署redis集群

一、安裝redis

linux下安裝

  1. 獲取redis資源
1 wget http://download.redis.io/releases/redis-4.0.10.tar.gz

 

  1. 解壓 
1 tar zxvf redis-4.0.10.tar.gz

 

  1. 把redis編譯過來
1 cd redis-4.0.10
2 make

 

img

make完后 redis-2.8.17目錄下會出現編譯后的redis服務程序redis-server,還有用於測試的客戶端程序redis-cli,兩個程序位於安裝目錄 src 目錄下:

下面啟動redis服務.

1 $ cd src
2 $ ./redis-server

 

注意這種方式啟動redis 使用的是默認配置。也可以通過啟動參數告訴redis使用指定配置文件使用下面命令啟動。

1 $ cd src
2 $ ./redis-server ../redis.conf

 

redis.conf 是一個默認的配置文件。我們可以根據需要使用自己的配置文件。

啟動redis服務進程后,就可以使用測試客戶端程序redis-cli和redis服務交互了。 比如:

1 $ cd src
2 $ ./redis-cli
3 redis> set foo bar
4 OK
5 redis> get foo
6 "bar"

 

ubuntu下安裝

在 Ubuntu 系統安裝 Redis 可以使用以下命令:

1 $sudo apt-get update
2 $sudo apt-get install redis-server

 

啟動redis

1 $ redis-server

 

查看redis是否啟動

1 $ redis-cli

 

以上命令將打開以下終端:

1 redis 127.0.0.1:6379>

 

127.0.0.1 是本機 IP ,6379 是 redis 服務端口。現在我們輸入 PING 命令。

1 redis 127.0.0.1:6379> ping
2 PONG

 

以上說明我們已經成功安裝了redis。

ubuntu先設置外部可鏈接

redis在ubuntu安裝后默認是只有本地訪問,需要別的ip訪問我們需要修改redis的配置文件

1 dpkg -L redis-server

 

這命令我們可以看到redis的安裝的文件在那些目錄

1557803281147

2.之后我們就修改配置文件

1 sudo vim /etc/redis/redis.conf

 

1557803573628

默認是127.0.0.1

這里修改為0.0.0.0 也就是隨意哪個 ip都可以訪問,當然也可以配置多個ip訪問,多個ip間用空格隔開就行了

重啟服務: service redis-server restart

二、linux下搭建集群

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

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

1557813956247

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

 

  1. 復制執行腳本

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

1 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

 

  1. 復制一個新 Redis 實例

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

1557814043014

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

 

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

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

 

集群搭建配置重點就是取消下圖中的這三個配置的注釋:

1557814078070

  1. 再復制出五個新 Redis 實例

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

1557814105060

1 \cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9002
2 \cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9003
3 \cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9004
4 \cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9005
5 \cp -rf /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9006

 

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

  1. 修改 9002-9006 的 redis.conf 文件

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

1557814156370

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

 

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

1557814184796

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

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

 

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

  1. 啟動 9001-9006 六個節點

1557814295814

1 /usr/local/bin/redis-server /usr/local/redis-cluster/9001/redis.conf 
2 /usr/local/bin/redis-server /usr/local/redis-cluster/9002/redis.conf 
3 /usr/local/bin/redis-server /usr/local/redis-cluster/9003/redis.conf 
4 /usr/local/bin/redis-server /usr/local/redis-cluster/9004/redis.conf 
5 /usr/local/bin/redis-server /usr/local/redis-cluster/9005/redis.conf 
6 /usr/local/bin/redis-server /usr/local/redis-cluster/9006/redis.conf

 

可以檢查一下是否啟動成功:ps -el | grep redis

看的出來,六個節點已經全部啟動成功了。

  1. 隨便找一個節點測試試
1 /usr/local/redis-cluster/bin/redis-cli -h 192.168.119.131 -p 9001
2 set name mafly

 

1557814522647

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

  1. 安裝集群所需軟件

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

1 yum install ruby
2 yum install rubygems
3 gem install redis 

 

1557814570870

這才是真正的創建集群

先不廢話,直接敲命令:

1 /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

 

1557814602521

簡單解釋一下這個命令:調用 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 后,會開始集群創建。

1557814656603

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

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

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

 

1557814673644

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

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

1557814689076

總結一下](http://blog.mayongfa.cn/287.html)

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

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

三、ubuntu下集群搭建具體步驟如下(注意要關閉防火牆)

  1. 在/home/rsckj/redis目錄下新建redis-cluster目錄,用於存放集群節點

1557804129849

  1. 拷貝redis.conf配置文件到9001.9002,9003,9004,9005,9006目錄下作為各個節點的配置文件。

設置redis會后台啟動.找到daemonize no 修改為 daemonize yes。

Redis集群搭建詳細教程

找到port 6379 修改為對應節點目錄的端口號。本次修改為6001目錄下的,固修改為6001。

Redis集群搭建詳細教程

找到bind這一行,bind后要修改為 當前機器的IP地址。

Redis集群搭建詳細教程

找到 dir 這一行 指定數據文件的存放路徑。設置為各個節點下的目錄。目錄結構類似為"/usr/local/las/redis-cluster/節點目錄/"

Redis集群搭建詳細教程

啟動集群模式。找到cluster-enabled 修改為 cluster-enabled yes。

Redis集群搭建詳細教程

設置集群的配置文件路徑 。cluster-config-file nodes600*.conf。600*代表每個節點的目錄對應的位置。本次修改為6001。

Redis集群搭建詳細教程

修改appendonly 為yes 。然后按照6001節點配置格式分別修改6002,6003,6004,6005,6006這幾個節點的配置文件。

Redis集群搭建詳細教程

安裝redisgem**

1 gem install redis

 

安裝ruby

1 sudo apt-get install ruby

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM