欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

redis cluster集群搭建

程序员文章站 2022-05-22 08:22:54
...

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 6379
cluster-enabled yes
cluster-config-file nodes_6379.conf
cluster-node-timeout 5000
appendonly yes

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

检查6个服务是否都启动了
redis cluster集群搭建

搭建集群
./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 cluster集群搭建

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

redis cluster集群搭建

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

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

redis cluster集群搭建

可以发现程序根据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的时候服务停止