推荐: 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) 主/从
host1 10.70.27.2 7000 17000 Master
host2 10.70.27.4 7000 17000 Master
host3 10.70.27.5 7000 17000 Master
host4 10.70.27.8 7000 17000 Slave
host5 10.70.27.10 7000 17000 Slave
host4 10.70.27.12 7000 17000 Slave

 

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 配置文件内容(作为参考),注意修改下红色字体部分的内容即可,其他都相同:推荐: Redis 集群的安装(Redis4.0.x +CentOS7.4.x )_第1张图片

推荐: Redis 集群的安装(Redis4.0.x +CentOS7.4.x )_第2张图片

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

 

[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

 

你可能感兴趣的:(redis)