推荐: Redis 集群的安装(Redis4.0.x +CentOS7.4.x )

一、参考文档

Redis 官方集群指南: http://redis.io/topics/cluster-tutorial
Redis 官方集群规范: http://redis.io/topics/cluster-spec
Redis 集群指南(中文翻译,紧供参考): http://redisdoc.com/topic/cluster-tutorial.html
Redis 集群规范(中文翻译,紧供参考): http://redisdoc.com/topic/cluster-spec.html 

二、Redis 集群的安装(Redis 4.0.6 + CentOS 7.3.x)

1、集群规划

要让 Redis4.x  集群正常工作至少需要 3 个 Master 节点, 要想实现高可用, 每个 Master 节点要配备至少 1 个 Slave 节点。 根据以上特点和要求, 进行如下的集群实施规划:使用 6 台服务器(物理机或虚拟机) 部署 3 个 Master + 3 个 Slave;

 

主机名IP服务端口(默认6379)集群端口(服务端口数+10000)主/从
host110.70.27.2700017000Master
host210.70.27.4700017000Master
host310.70.27.5700017000Master
host410.70.27.8700017000Slave
host510.70.27.10700017000Slave
host410.70.27.12700017000Slave

 

2、配置防火墙

防火墙中打开相应的端口 

[plain] view plain

在这6台机器上,如果有防火墙开启了的话,记得把下面的端口打开

  1. -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000-j ACCEPT

3、准备

 

找任意上面的一台机器上去生成redis4的可执行文件,比如在host1上。

 

安装目录: /usr/local/redis4
用户: root
编译和安装所需的包:

 

[plain] view plain copy

  1. # yum install gcc tcl  

下载(或上传) Redis4 最新稳定版(当前最新版 redis-4.0.6.tar.gz)

 

[plain] view plain copy

  1. # cd /usr/local/src  
  2. # wget http://download.redis.io/releases/redis-4.0.6.tar.gz  

创建安装目录:

 

[plain] view plain copy

  1. # mkdir /usr/local/redis4  

解压:

 

[plain] view plain copy

  1. # tar -zxvf redis-4.0.6.tar.gz  
  2. # cd redis-4.0.6  

安装(使用 PREFIX 指定安装目录):

 

[plain] view plain copy

  1. # make PREFIX=/usr/local/redis4 install  

安装完成后, 可以看到/usr/local/redis4 目录下有一个 bin 目录, bin 目录里就是 redis 的命令脚本:

 

[plain] view plain copy

  1. redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server  

4、拷贝redis.conf

在6个机器上 创建集群配置目录

/usr/local/redis4

/usr/local/redis4/conf

/usr/local/redis4/bin 

 

然后

1: 把host1上的 /usr/local/src/redis-4.0.6/redis.conf 拷贝到这六个机器的/usr/local/redis4/conf 下面。

2: host1上的 /usr/local/redis4/bin 目录下的所有内容 拷贝到这六个机器的/usr/local/redis4/bin下面

 

5、修改redis.conf

对6个节点修改它们的配置文件,下面选项如下:
6 个节点的 redis.conf 配置文件内容(作为参考),注意修改下红色字体部分的内容即可,其他都相同:

在本次安装中,我们包含了最少选项的集群配置文件示例如下:

 

[plain] view plain copy

  1. port 7000  
  2. cluster-enabled yes  
  3. cluster-config-file nodes.conf  
  4. cluster-node-timeout 5000  
  5. appendonly yes  

6、启动Redis实例

使用如下命令启动这 6 个 Redis 节点实例: 

# /usr/local/redis4/bin/redis-server  /usr/local/redis4/conf/redis.conf  

启动之后用 PS 命令查看实例启动情况:

# ps -ef | grep redis 

root 5443 1 0 22:49 ? 00:00:00 /usr/local/redis4/bin/redis-server *:7000 [cluster] 

注意: 启动完毕后, 6 个 Redis 实例尚未构成集群。

7、创建集群

接下来准备创建集群
安装 ruby 和 rubygems注:如果是Redis4.0.6,则ruby需要2.2.2版本及其以上。

安装步骤如下:

 

# yum install centos-release-scl-rh 
//会在/etc/yum.repos.d/目录下多出一个CentOS-SCLo-scl-rh.repo源
# yum install rh-ruby24-ruby.x86_64 -y
# scl enable rh-ruby24 bash 
#  ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]

gem 安装 redis ruby 接口:

 

 

[plain] view plain copy

  1. # gem install redis  
  2. [root@VM_27_2_centos etc]# gem install redis
    Fetching: redis-4.0.1.gem (100%)
    Successfully installed redis-4.0.1
    Parsing documentation for redis-4.0.1
    Installing ri documentation for redis-4.0.1
    Done installing documentation for redis after 0 seconds
    1 gem installed
  3.  

执行 Redis 集群创建命令(只需要在其中一个节点上执行一次则可)

 

[plain] view plain copy

  1. # cd /usr/local/src/redis-4.0.6/src/  
  2. # cp redis-trib.rb /usr/local/bin/redis-trib.rb 
  3. /usr/local/bin/redis-trib.rb create --replicas 1 10.70.27.2:7000  10.70.27.4:7000  10.70.27.5:7000  10.70.27.8:7000   10.70.27.10:7000  10.70.27.12:7000

结果为:

 

[plain] view plain copy

  1. >>> Creating cluster  
  2. Connecting to node 
  3. ......
  4. Can I set the above configuration? (type 'yes' to accept): yes  
  5. (输入 yes 并按下回车确认之后,集群就会将配置应用到各个节点,并连接起(join)各个节点,也就是  
  6. 让各个节点开始互相通讯)  
  7. >>> Nodes configuration updated  
  8. >>> Assign a different config epoch to each node  
  9. >>> Sending CLUSTER MEET messages to join the cluster  
  10. Waiting for the cluster to join....  
  11. >>> Performing Cluster Check
  12. .....

一切正常的情况下输出以下信息 

 

[plain] view plain copy

  1. [OK] All nodes agree about slots configuration.  
  2. >>> Check for open slots...  
  3. >>> Check slots coverage...  
  4. [OK] All 16384 slots covered.  

最后一行信息表示集群中的 16384 个槽都有至少一个主节点在处理, 集群运作正常。
集群创建过程说明:
(1) 给定 redis-trib.rb 程序的命令是 create , 这表示我们希望创建一个新的集群;
(2) 这里的 --replicas 1 表示每个主节点下有一个从节点;
(3) 之后跟着的其它参数则是实例的地址列表,程序使用这些地址所指示的实例来创建新集群;总的来说,以上命令的意思就是让 redis-trib 程序创建一个包含三个主节点和三个从节点的集群。接着, redis-trib 会打印出一份预想中的配置给你看,如果你觉得没问题的话(注意核对主从关系是否是你想要的),就可以输入 yes , redis-trib 就会将这份配置应用到集群当中。

 

8、集群简单测试

使用 redis-cli 命令进入集群环境

[plain] view plain copy

  1. # /opt/app/redis4_cluster/bin/redis-cli -c -h 10.70.27.2 -p 7000
  2.  > set name bigtree  
  3. OK  
  4. /opt/app/redis4_cluster/bin/redis-cli -c -h 10.70.27.2 -p 7000
  5. > get name

更多的redis-cli 命令见 

https://www.cnblogs.com/yanwei-wang/p/5527453.html

三、将 Redis 配置成服务

 

可以参考这个文档去服务化redis 进程http://blog.csdn.net/bigtree_3721/article/details/78883920

 

 

四、温馨提示

大家可以到链接http://download.csdn.net/detail/l1028386804/9849374下载Redis集群配置文件

 

参考文档: http://blog.csdn.net/l1028386804/article/details/72633608

注意:

1:redis在单机模式下redis.conf配置文件中默认的数据库数量是16个;在集群模式下这个配置是不起作用的,集群客户端是不支持多数据库db的,只有一个数据库默认是SELECT 0。

2:集群slave从节点默认是不支持读写操作的,但是在执行过readonly命令后可以执行读操作。

即在redis.conf中,做如下设置:

slave-read-only yes

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值