redis集羣搭建

小弟這兩天在看redis原理,甚是蒙圈。索性去搭下看下。html

集羣搭建首先要有一個活多個服務器。小弟本機虛擬機運行。因此都裝一個地方了node

下面開始:linux

一、csdn上gem包 由於沒有積分。無法下。因此下了個redis-3.0.0-rc2.tar.gz nginx

wget http://download.redis.io/releases/redis-3.0.0.tar.gz

二、建立目錄到redis

/usr/local/redis/redis-cluster/redis1vim

三、解壓到redis1中安全

tar zxvf redis-3.0.0.tar.gz redis1

四、由於是gz包,跟gem包結構稍有不一樣。因此,要去src下執行ruby

make MALLOC=libc

五、回退到redis1目錄,vim redis.config,修改daemonize 爲yes   port 7001(本機集羣用端口好區分,多個服務器的話 就ip就行)bash

REDIS CLUSTER   中  的
cluster-enabled yes 放開(缺省是被註釋的)服務器

################################ GENERAL  #####################################
 
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes
 
# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
port *
 
################################ REDIS CLUSTER  ###############################
#
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# WARNING EXPERIMENTAL: Redis Cluster is considered to be stable code, however
# in order to mark it as "mature" we need to wait for a non trivial percentage
# of users to deploy it in production.
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
# Normal Redis instances can't be part of a Redis Cluster; only nodes that are
# started as cluster nodes can. In order to start a Redis instance as a
# cluster node enable the cluster support uncommenting the following:
#
cluster-enabled yes

六、複製redis1目錄的內容  分別建立出redis2  -redis6 內容與redis1相同,只有端口號不一樣,分別是7001-7006


七、寫個啓動腳本和中止腳本start-all.sh 和stop-all.sh

啓動的
cd redis1/src
./redis-server ../redis.conf
cd ../..
cd redis2/src
./redis-server ../redis.conf
cd ../..
cd redis3/src
./redis-server ../redis.conf
cd ../..
cd redis4/src
./redis-server ../redis.conf
cd ../..
cd redis5/src
./redis-server ../redis.conf
cd ../..
cd redis6/src
./redis-server ../redis.conf
cd ../..

中止的
./redis1/src/redis-cli -p 7001 shutdown
./redis1/src/redis-cli -p 7002 shutdown
./redis1/src/redis-cli -p 7003 shutdown
./redis1/src/redis-cli -p 7004 shutdown
./redis1/src/redis-cli -p 7005 shutdown
./redis1/src/redis-cli -p 7006 shutdown

至於redis-trib.rb  是一個ruby腳本,是從redis1中拷貝出來的額,爲了方便建立集羣,而後執行啓動腳本

八、配置ruby環境

yum install ruby
yum install rubygems
gem install redis

注意,,安裝的ruby不能低於2.2版本不然 執行集羣命令會報錯

Error installing redis:
redis requires Ruby version >= 2.2.2.

***若是出現上述錯誤,那麼就須要安裝rvm對ruby 進行升級

   先升級ssl    yum -y update nss

   建立個祕鑰 gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB 

   安裝rvm  curl -sSL https://get.rvm.io | bash -s stable

   以上就是安裝rvm的過程。有些linux系統ssl版本高。能夠不用update升級ssl的那步能夠省略。

   而後使用rvm 安裝一個ruby:rvm install 2.4.1

   查看當前ruby版本 :ruby --version

   

   這樣就安全了。就能夠執行gem install redis  就是建立redis接口鏈接的命令。

九、執行集羣建立 命令:./redis-trib.rb create --replicas 1 192.168.1.31:7001 192.168.1.31:7002 192.168.1.31:7003 192.168.1.31:7004 192.168.1.31:7005  192.168.1.31:7006

這樣就建立完成了。。 默認 先建立的3個位master服務  後面的3個位從服務。

注意:這裏可能會出現異常
 Creating cluster
Connecting to node 192.168.37.131:7001: OK
[ERR] Node 192.168.37.131:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0

這是由於 redis安裝文件中存在集羣文件致使。 

解決方案。先中止服務,刪除集羣文件便可

rm -f redis*/dump.rdb
rm -f redis*/appendonly.aof
rm -f redis*/nodes.conf

重啓。

: 集羣建立完成後仍能夠新增節點和刪除節點,而且能夠建立相關的主從綁定。後續接着研究。

參考網站:https://blog.csdn.net/truelove12358/article/details/79612954

https://www.cnblogs.com/pangguoming/p/5956154.html

相關文章
相關標籤/搜索