redis cluster集群搭建

来源:互联网 发布:sql主键和外键相同 编辑:程序博客网 时间:2024/04/28 10:06

redis集群的介绍和官网集群搭建方式请访问:http://www.redis.cn/topics/cluster-tutorial.html

下载redis最新的安装包
wget http://download.redis.io/releases/redis-4.0.1.tar.gz
解压
tar -zxvf redis-4.0.1.tar.gz
make
创建集群相关文件(方便管理)
mkdir cluster 
cd cluster
mkdir 6379 6380 6381 6382 6383 6384 
cluster下面每个目录中都创建一个redis.conf文件. 注意修改文件中的端口号:

port 6379cluster-enabled yescluster-config-file nodes_6379.confcluster-node-timeout 5000appendonly yes

把redis-server的可执行文件复制到cluster下面的各个目录, 然后打开6个shell终端,进入各个目录,启动每个实例, 命令如下: 
./redis-server redis.conf

检查6个服务是否都启动了

搭建集群
./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384

–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。
此时报错,发现缺少相应的ruby环境,如下安装相应环境:

yum install ruby
yum install rubygems

由于redis4.0需要按照ruby2.2以上版本。所以如果直接使用上述命令按照很可能安装的版本过低。
直接运行:ruby -v 查看ruby版本;
如果发现过低请删除
直接运行:yum erase ruby ruby-libs ruby-mode ruby-rdoc ruby-irb ruby-ri ruby-docs

然后官网下载ruby2.2.8
直接减压make编译安装
 tar -zxvf ruby-2.2.8.tar.gz
 cd ruby-2.2.8
 ./configure --prefix=/opt/ruby
 make && make install

然后设置环境变量
vi /etc/profile

profile内容:

export JENKINS_HOME=/opt/jenkins/home
export M2_HOME=/usr/local/maven/maven-home
export RUBY_HOME=/opt/ruby
PATH=$PATH:$M2_HOME/bin:$RUBY_HOME/bin
export PATH 


source /etc/profile

查看配置是否生效和ruby版本
ruby -v

然后运行gem install redis

安装好环境后再次搭建集群
./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 

检测集群节点相关信息 
./redis-trib.rb check 127.0.0.1:6379

可以发现系统将前3个服务做了主节点,后3个服务作为了从节点,并且是相对应的。

进入某个节点验证
./redis-cli -c -h 127.0.0.1 -p 6379

可以发现程序根据key对16384取模的值为3488,根据hash槽的分布跳转到了对应的节点上。 可见集群环境正常运行

redis注意
1.在本机使用redis-trib.rb create --replicas 创建集群的时候如果是直接使用的ip地址是127.0.0.1;那么非本机无法访问集群。
解决的方法:修改每一个redis的node.conf修改127.0.0.1为对外IP即可;或者删除集群使用外网IP重新创建。
2.使用jedis cluster访问集群的时候注意设置过期时间和重试次数;防止服务端redis的master出现宕机切换slave的时候服务停止