Linux安装redis集群

  

linux安装单机版redis已经在另一篇文章说过了,下边来搞集群,环境是新浪云服务器:

redis3.0以后开始支持集群。

前言:redis用什么做集群?

  用一个叫redis-trib.rb的ruby脚本。redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下(redis-xxx/src/)。是基于redis提供的集群命令封装成简单、便捷、实用的操作工具。redis-trib.rb是redis作者用ruby完成的。所以redis集群需要先安装ruby环境。

先瞅瞅在哪:进入到redis的源代码目录,就可以看到redis-trib.rb脚本

正文,一:安装ruby环境:(前提条件)

  上文已经说了,redis集群是用的ruby脚本,所以要想执行该脚本,需要ruby环境。

  安装ruby环境:

  yum install ruby

  yum install rubygems      (ruby包的管理器,用来下载ruby的包)

  

  

  显示Nothing todo,说明服务器已经安装了ruby。

  二:安装ruby包redis-3.3.0.gem

  redis-trib.rb的运行需要的ruby包,正如我们的java程序需要的jar包一样。

  这个包和redis版本不是非得匹配,只要支持就行,我在网上找了个和redis -3.2.9版本接近的3.3.0版本。切换到redistar目录,用secureCRT的rz命令redis-3.3.0.gem上传到redistar目录,这个包安装到哪都行,只是提供一个环境而已。

用的secureCRT的rz命令上传到服务器,进入到redistar目录,执行rz命令,即可上传文件。

执行gem install redis-3.0.0.gem命令安装。

安装完成:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

这里是介绍性东西:

进入到redis的src目录,用ll  *.rb找到redis-trib.rb文件,

执行命令./redis-trib  help 可以查看该工具包提供的命令和功能

-rwxrwxr-x 1 root root 60852 May 17 15:39 redis-trib.rb
[[email protected] /redistar/redis-3.2.9/src]# ./redis-trib.rb help
Usage: redis-trib <command> <options> <arguments ...>

  create          host1:port1 ... hostN:portN
                  --replicas <arg>
  check           host:port
  info            host:port
  fix             host:port
                  --timeout <arg>
  reshard         host:port
                  --from <arg>
                  --to <arg>
                  --slots <arg>
                  --yes
                  --timeout <arg>
                  --pipeline <arg>
  rebalance       host:port
                  --weight <arg>
                  --auto-weights
                  --use-empty-masters
                  --timeout <arg>
                  --simulate
                  --pipeline <arg>
                  --threshold <arg>
  add-node        new_host:new_port existing_host:existing_port
                  --slave
                  --master-id <arg>
  del-node        host:port node_id
  set-timeout     host:port milliseconds
  call            host:port command arg arg .. arg
  import          host:port
                  --from <arg>
                  --copy
                  --replace
  help            (show this help)

For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster.

下边是从别人文章找的解释:

可以看到redis-trib.rb具有以下功能:

  • 1、 create :创建集群
  • 2、 check :检查集群
  • 3、 info :查看集群信息
  • 4、 fix :修复集群
  • 5、 reshard :在线迁移slot
  • 6、 rebalance :平衡集群节点slot数量
  • 7、 add-node :将新节点加入集群
  • 8、 del-node :从集群中删除节点
  • 9、 set-timeout :设置集群节点间心跳连接的超时时间
  • 10、 call :在集群全部节点上执行命令
  • 11、 import :将外部redis数据导入集群
  • redis-trib.rb主要有两个类: ClusterNode 和 RedisTrib 。 ClusterNode 保存了每个节点的信息, RedisTrib 则是redis-trib.rb各个功能的实现。
  • ++++++++++++++++++++++++++++++++++++++++

    暂且只关注创建集群的功能。先简单介绍下redis-trib.rb脚本的使用,以create为例:
create          host1:port1 ... hostN:portN
                  --replicas <arg>

host1:port1 ... hostN:portN 表示子参数,这个必须在可选参数之后, --replicas <arg> 是可选参数,带 的表示后面必须填写一个参数,像 --slave 这样,后面就不带参数,掌握了这个基本规则,就能从help命令中获得redis-trib.rb的使用方法。

 例子:create创建集群

create命令可选replicas参数,replicas表示需要有几个slave。

有一个slave的集群的创建命令如下:

$ruby  redis-trib.rb  create--replicas 1  10.180.157.199:6379   10.180.157.200:6379   10.180.157.201:6379   10.180.157.202:6379  10.180.157.205:6379    10.180.157.208:6379   

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

三:搭建我们的集群:

集群中有三个节点的集群,每个节点有一主一备。需要6台虚拟机。

搭建一个伪分布式的集群,使用6个redis实例来模拟。

1,在user/local 下创建redis-cluster目录:

mkdir redis-cluster

在创建redis01目录

进入usr/local/redis,把redis-cli、redis-server、redis.conf复制到/usr/local/redis-cluster/redis01目录

查看:

说明:这里安装redis单机版的时候,只用了make命令,没有make install,然后把redis-cli、redis-server、redis.conf三个文件copy到了自己手动建的/usr/local/redis目录,

如果用[[email protected] redis-3.0.0]# make install PREFIX=/usr/local/redis安装的redis单机版,还会有其他几个文件在/usr/local/redis目录,至于区别用途还不很清楚。

第一步:创建6个redis实例,端口号从7001~7006

第二步:修改redis的配置文件,后端启动daenonize改为yes是之前安装单机版已经做过的。

1、  修改端口号,进入vim编辑模式后,非insert模式下(insert了按esc即可退出)输入/port 回车可快速定位

2,打开cluster-enable前面的注释。:wq!保存编辑

3,复制redis01到当前目录,cp是复制,-r是连带子目录一并复制,并起名redis02、redis03、redis04、redis05、redis06

 cp –r redis01/  redis02

修改redis02、redis03、redis04、redis05、redis06的端口号为7002、7003、7004、7005、7006

4:把创建集群的ruby脚本复制到redis-cluster目录下。

进入redis源码redistar/redis-3.2.9/src去copy:

cp *.rb /usr/local/redis-cluster/    *通配符,src目录只有一个.rb文件就是redis-trib.rb

查看

:

启动6个redis实例,一个一个去启动有点复杂,在redis-cluster目录创建一个脚本来启动6个实例:

cd /usr/local/redis-cluster

vim startall.sh就会打开vim编辑器,创建一个空的文本:

:wq!保存脚本,创建成功:

执行./startall.sh 提示permission denied说明权限不足,执行命令chmod 777 startall.sh修改权限

再执行./startall.sh,  ps  -aux|grep redis查看redis运行情况,6379是之前的redis没有停止

可以看到端口7001、7002、7003、7004、7005、7006的redis都起来了。

5:创建集群。

基于上边分割线内的介绍:在redis-cluster目录下执行以下命令:

./redis-trib.rb  create --replicas  1  127.0.0.1:7001  127.0.0.1:7002  127.0.0.1:7003  127.0.0.1:7004  127.0.0.1:7005   127.0.0.1:7006

[[email protected] /usr/local/redis-cluster]# ./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005  127.0.0.1:7006
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7001
127.0.0.1:7002
127.0.0.1:7003
Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
Adding replica 127.0.0.1:7006 to 127.0.0.1:7003
M: b370efb2e0dd8dd09aeee2177099d68c5982a01c 127.0.0.1:7001
   slots:0-5460 (5461 slots) master
M: 387d8975195982ed96a08cd0d14587bfa68659db 127.0.0.1:7002
   slots:5461-10922 (5462 slots) master
M: bc46045f41d337e4316230fb40bdfb8c1784d419 127.0.0.1:7003
   slots:10923-16383 (5461 slots) master
S: d99c5ba8d944a45d3393a5c84b014446ff16c1e0 127.0.0.1:7004
   replicates b370efb2e0dd8dd09aeee2177099d68c5982a01c
S: a3352a69d5f1b69bed39d4ffe636305dc808f891 127.0.0.1:7005
   replicates 387d8975195982ed96a08cd0d14587bfa68659db
S: ad04e4409aae4295d1198403330e967285396d05 127.0.0.1:7006
   replicates bc46045f41d337e4316230fb40bdfb8c1784d419
Can I set the above configuration? (type ‘yes‘ to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join....
>>> Performing Cluster Check (using node 127.0.0.1:7001)
M: b370efb2e0dd8dd09aeee2177099d68c5982a01c 127.0.0.1:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: a3352a69d5f1b69bed39d4ffe636305dc808f891 127.0.0.1:7005
   slots: (0 slots) slave
   replicates 387d8975195982ed96a08cd0d14587bfa68659db
S: ad04e4409aae4295d1198403330e967285396d05 127.0.0.1:7006
   slots: (0 slots) slave
   replicates bc46045f41d337e4316230fb40bdfb8c1784d419
M: bc46045f41d337e4316230fb40bdfb8c1784d419 127.0.0.1:7003
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: d99c5ba8d944a45d3393a5c84b014446ff16c1e0 127.0.0.1:7004
   slots: (0 slots) slave
   replicates b370efb2e0dd8dd09aeee2177099d68c5982a01c
M: 387d8975195982ed96a08cd0d14587bfa68659db 127.0.0.1:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[[email protected] /usr/local/redis-cluster]#

集群搭建好了

 测试集群

[[email protected] /usr/local/redis-cluster]# redis01/redis-cli -h 192.168.25.153 -p 7002 –c

说明:-h+host –p+端口号 –c 是要连接集群,注意坑,不加会报错的

可以看到连接的是7001的节点,set  name的时候计算了存在哪个hash槽上,会跳转到那个槽对应的节点。

不写-c的坑:

----------------------先写到这里,明天在补充,2017-05-25:23:20

时间: 2024-07-30 10:06:28

Linux安装redis集群的相关文章

安装redis 集群

安装redis集群 第一步:安装相关依赖包 1):安装redis-cluster依赖:redis-cluster的依赖库在使用时有兼容问题,在reshard时会遇到各种错误,请按指定版本安装. (1)确保系统安装zlib,否则geminstall会报(no such file to load -- zlib)     #download:zlib-1.2.6.tar       ./configure      make  make install   或者 yum install zlib (

Linux离线安装redis集群

一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,联网环境安装较为简单,这里只说脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网,服务器处于脱机状态. 二.安装环境及工具 系统:CentOS7 工具:XShell5及Xftp5 安装包: Ruby-2.4.2 Rubygems-2.6.14 Redis-4.0.2(3.x版本才开始支持集群功能) openssl-1.1.0f 三.安装步骤 要搭建一个最简单的Redis集群,我们至少

Linux环境redis集群搭建

原文:http://blog.csdn.net/yj327243832a/article/details/52785100 原文:http://www.linuxidc.com/Linux/2015-08/121845.htm logfile "/usr/local/redis_cluster/log/" dir /usr/local/redis_cluster 在redis_cluster目录下创建log文件夹 ./redis-server /usr/local/redis_clus

Linux下Redis集群环境的搭建

一.安装redis(使用redis3.0版本) 1.需要gcc环境,如果没有执行命令安装gcc yum install gcc-c++ 2.下载redis3.0的源码包并上传至服务器 3.解压源码包 tar -zxvf redis-3.0.0.tar.gz 4.进入解压目录编译 make 5.安装redis make install PREFIX=/usr/local/redis 二.启动redis 1.从redis-3.0.0文件中复制redis-conf到redis的安装目录中 2.然后修改

【redis】 linux 下redis 集群环境搭建

Redis集群部署文档(centos6系统) (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:7000127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 1:下载redis.官网下载3.0.0版本,之前2.几的版本不支持集群模式 下载地址:https://github.com

离线安装redis集群

redis集群需要安装如下组件: ruby rubygems redis ---------------------------------------------------------------------------------- 离线安装ruby 1:上传ruby-2.3.1.tar.gz至服务器: 2:tar -xzvf ruby-2.3.1.tar.gz: 3:cd ruby-2.3.1 4:./configure --prefix='/opt/ruby' 5:make 6:mak

Centos7安装Redis(集群模式)

环境:centos7.6 redis4.0模拟在一个Centos7下安装6个redis实例搭建集群 3主3从 安装wgetyum -y install wget 安装gccyum -y install gcc automake autoconf libtool make 下载rediscd /usr/local/softwarewget http://download.redis.io/releases/redis-4.0.0.tar.gz 解压tar -xzvf redis-4.0.0.tar

windows下安装redis集群

前几天在自己在本机win10 电脑下部署了redis集群. 主要通过的是网上两个博客: 如何在windows下部署redis集群:https://blog.csdn.net/zsg88/article/details/73715947 redis的一些操作:https://blog.csdn.net/mlc1218559742/article/details/52640180 原文地址:https://www.cnblogs.com/tuanz/p/9359037.html

Linux/Centos Redis集群安装

1.安装redis服务文中涉及到的软件包加下方微信 免费获取#mkdir /usr/local/redis/data –p #mkdir /usr/local/redis/log -p #cd /usr/local/src #tar -zxf redis-3.0.6.tar.gz #cd redis-2.8.9 #make && make install 2.复制配置文件#cp redis.conf /usr/local/bin/ #cd /usr/local/bin #cp redis.