上一篇中已经讲到了如何安装单击版Redis,这一篇我们来说下如何安装Cluster,关于哨兵模式这里我就不写文章安装了,有兴趣的同学可以自己去研究,哨兵模式可以在主从模式下在创建三台机器的哨兵集群监控redis主从集群即可。

本文由于我是在windows上创建的虚拟机,所以是每台机器上部署2个实例,一共三台机器6个实例。生产环境中建议都是说在6台机器上去搭建,至少3台机器,保证,每个master都跟自己的slave不在同一台机器上,如果是6台自然更好。

1,准备条件

首先需要在三台机器上分别安装Redis,安装教程可参考:CentOS7 安装Redis 单机版,到文章的第三步结束即可

安装redis出现上面的截图后就说明redis已经安装完毕。

下面我会把第四部的配置稍微改动一下

2,修改配置文件

这里同上一篇文章中的第四部是一样的,不过是多增加了几个配置和目录而已,一下步骤按一台机器为例,其他机器只需要更改7001端口号即可,别的不需要更改

(1)redis utils目录下,有个redis_init_script脚本
(2)将redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_7001,7001是我们希望这个redis实例监听的端口号
(3)修改redis_7001脚本的第6行的REDISPORT,设置为相同的端口号(默认就是7001)
(4)创建两个目录:

  • /etc/redis(存放redis的配置文件)
  • /var/redis/7001(存放redis的持久化文件)

(5)修改redis配置文件(默认在根目录下,redis.conf),拷贝到/etc/redis目录中,修改名称为7001.conf
(6)修改redis.conf中的部分配置

  • port 7001
  • cluster-enabled yes
  • cluster-config-file /etc/redis-cluster/node-7001.conf
  • cluster-node-timeout 15000
  • daemonize yes
  • pidfile /var/run/redis_7001.pid
  • dir /var/redis/7001
  • logfile /var/log/redis/7001.log
  • bind 192.168.32.128(这里需要改成自己虚拟机的ip即可)
  • appendonly yes

(7)创建上面配置中的目录

  • mkdir -p /etc/redis-cluster
  • mkdir -p /var/log/redis

(8)启动redis执行

  • cd /etc/init.d
  • chmod 777 redis_7001
  • ./redis_7002 start

(9)确认redis进程是否启动,ps -ef | grep redis

重复上面的步骤,分别做出6份配置文件:

7001.conf,7002.conf,7003.conf,7004.conf,7005.conf,7006.conf

redis_7001,redis_7002,redis_7003,redis_7004,redis_7005,redis_7006

分别重启后先检查下redis状态是不是6个服务都全部启动。

3,创建集群

这里安装集群需要Ruby命令,因此我们需要安装下Ruby,在集群机器中随便找一台执行即可

  • yum install ruby //安装ruby
  • yum install rubygems //安装rubygems,最新版本会自动安装

接下来我们需要安装Redis的Ruby接口程序

  • gem install redis

执行完成之后会发现报错了 ,redis需要的Ruby版本最低是2.2.2,但是CentOS7 yum库中ruby的版本支持到 2.0.0,可gem 安装redis需要最低是2.2.2,采用rvm来更新ruby:

  1. 安装RVM
    1. curl -L get.rvm.io | bash -s stable
    2. find / -name rvm -print(此时可能出现问题)
    3. 如果没有出现上面的信息,可参考:https://blog.csdn.net/lixwjava/article/details/50408070,需要执行的命令如下
    4. curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
      curl -L get.rvm.io | bash -s stable
      find / -name rvm.sh
      source /etc/profile.d/rvm.sh
      rvm requirements

      上面命令执行完毕后,继续执行 find / -name rvm -print,就可以看到上面的正确的截图了

  2. 使刚安装的rvm立即生效
    1. source /usr/local/rvm/scripts/rvm
  3. 查看rvm库中ruby版本
    1. rvm list known
  4. 安装一个ruby版本
    1. rvm install 2.4.1

  5. 使用一个ruby版本
    1. rvm use 2.4.1
  6. 设置默认版本
    1. rvm use 2.4.1 --default
  7. 卸载一个已知版本
    1. rvm remove 版本号
  8. 查看ruby版本
    1. ruby --version
  9. 到此为止ruby的新版本就安装完毕了,下面让我继续执行安装redis  执行命令 
    gem install redis

redis cluster 集群继续

cp /usr/local/java/redis-4.0.9/src/redis-trib.rb /usr/local/bin/
redis-trib.rb create --replicas 1 192.168.32.128:7001 192.168.32.128:7002 192.168.32.130:7003 192.168.32.130:7004 192.168.32.131:7005 192.168.32.131:7006
--replicas: 每个master有几个slave,输入后可以得到下面的信息
[root@linux2 bin]# redis-trib.rb create --replicas 1 192.168.32.128:7001 192.168.32.128:7002 192.168.32.130:7003 192.168.32.130:7004 192.168.32.131:7005 192.168.32.131:7006
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.32.128:7001
192.168.32.130:7003
192.168.32.131:7005
Adding replica 192.168.32.130:7004 to 192.168.32.128:7001
Adding replica 192.168.32.131:7006 to 192.168.32.130:7003
Adding replica 192.168.32.128:7002 to 192.168.32.131:7005
M: f18c22678ff0d3e3d17bc07baddab16228d07ccb 192.168.32.128:7001
slots:0-5460 (5461 slots) master
S: 98a4697532e570a8dee1a419e4f24a31a373aae3 192.168.32.128:7002
replicates f2f14871b8fe57eeddb3a872c5e515a34d9159c1
M: a2b5695b041c36b7fcf560225e2444a421b731ea 192.168.32.130:7003
slots:5461-10922 (5462 slots) master
S: 7e39b67d363dc512a79e800bb566c3340265d457 192.168.32.130:7004
replicates f18c22678ff0d3e3d17bc07baddab16228d07ccb
M: f2f14871b8fe57eeddb3a872c5e515a34d9159c1 192.168.32.131:7005
slots:10923-16383 (5461 slots) master
S: ae5a841eea817745ef3a1ee5cf7cfc991c323f0d 192.168.32.131:7006
replicates a2b5695b041c36b7fcf560225e2444a421b731ea
Can I set the above configuration? (type 'yes' to accept): //这里如果同意上面的分配的话请输入yes
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 192.168.32.128:7001)
M: f18c22678ff0d3e3d17bc07baddab16228d07ccb 192.168.32.128:7001
slots:0-5460 (5461 slots) master
1 additional replica(s)
M: a2b5695b041c36b7fcf560225e2444a421b731ea 192.168.32.130:7003
slots:5461-10922 (5462 slots) master
1 additional replica(s)
M: f2f14871b8fe57eeddb3a872c5e515a34d9159c1 192.168.32.131:7005
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 98a4697532e570a8dee1a419e4f24a31a373aae3 192.168.32.128:7002
slots: (0 slots) slave
replicates f2f14871b8fe57eeddb3a872c5e515a34d9159c1
S: 7e39b67d363dc512a79e800bb566c3340265d457 192.168.32.130:7004
slots: (0 slots) slave
replicates f18c22678ff0d3e3d17bc07baddab16228d07ccb
S: ae5a841eea817745ef3a1ee5cf7cfc991c323f0d 192.168.32.131:7006
slots: (0 slots) slave
replicates a2b5695b041c36b7fcf560225e2444a421b731ea
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

到这里集群就创建完毕了

[root@linux2 bin]# redis-trib.rb check 192.168.32.128:7001 //随时可以用此命令来查看集群的状态
>>> Performing Cluster Check (using node 192.168.32.128:7001)
M: f18c22678ff0d3e3d17bc07baddab16228d07ccb 192.168.32.128:7001
slots:0-5460 (5461 slots) master
1 additional replica(s)
M: a2b5695b041c36b7fcf560225e2444a421b731ea 192.168.32.130:7003
slots:5461-10922 (5462 slots) master
1 additional replica(s)
M: f2f14871b8fe57eeddb3a872c5e515a34d9159c1 192.168.32.131:7005
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 98a4697532e570a8dee1a419e4f24a31a373aae3 192.168.32.128:7002
slots: (0 slots) slave
replicates f2f14871b8fe57eeddb3a872c5e515a34d9159c1
S: 7e39b67d363dc512a79e800bb566c3340265d457 192.168.32.130:7004
slots: (0 slots) slave
replicates f18c22678ff0d3e3d17bc07baddab16228d07ccb
S: ae5a841eea817745ef3a1ee5cf7cfc991c323f0d 192.168.32.131:7006
slots: (0 slots) slave
replicates a2b5695b041c36b7fcf560225e2444a421b731ea
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

CentOS7 安装Redis Cluster集群的更多相关文章

  1. docker 安装redis cluster集群

    安装Redis镜像 docker pull yyyyttttwwww/redis 创建redis容器 docker run -it -d --name r1 -p 5001:6379 --net=ne ...

  2. redis cluster 集群 安装 配置 详解

    redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...

  3. Redis Cluster集群搭建与应用

    1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结 ...

  4. Redis Cluster集群搭建与配置

    Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...

  5. 深入分析redis cluster 集群

    深入分析redis cluster 集群安装配置详解 下面小编来为各位介绍一篇深入分析redis cluster 集群安装配置详解,如果你希望做数据库集群就可以来看看此文章的哦. http://rub ...

  6. Redis Cluster集群主从方案

    本文介绍一种通过Jedis和Cluster实现Redis集群(主从)的高可用方案,该方案需要使用Jedis2.8.0(推荐),Redis3.0及以上版本(强制). 附:Redis Cluster集群主 ...

  7. Redis Cluster集群架构实现(四)--技术流ken

    Redis集群简介 通过前面三篇博客的介绍<Redis基础认识及常用命令使用(一)--技术流ken>,<Redis基础知识补充及持久化.备份介绍(二)--技术流ken>,< ...

  8. centos7搭建ELK Cluster集群日志分析平台(四):Fliebeat-简单测试

    续之前安装好的ELK集群 各主机:es-1 ~ es-3 :192.168.1.21/22/23 logstash: 192.168.1.24 kibana: 192.168.1.25 测试机:cli ...

  9. centos7搭建ELK Cluster集群日志分析平台(三):Kibana

    续  centos7搭建ELK Cluster集群日志分析平台(一) 续  centos7搭建ELK Cluster集群日志分析平台(二) 已经安装好elasticsearch 5.4集群和logst ...

随机推荐

  1. Git的fast forward和no fast forward和 three way merge 以及squash(聚合)

    github上上传了版本库https://github.com/ChuckGitMerge   包括merge和rebase 没时间画图,貌似也不太会用画图工具,先写了一个文字版本的 更新:2015年 ...

  2. ubuntu 14.04 安装svn server (subversionedge )

    ubuntu 14.04 安装subversionedge 请仔细阅读安装包自带的readme文件! 1.先去官网,找安装包: http://subversion.apache.org/ http:/ ...

  3. python3学习笔记2---引用http://python3-cookbook.readthedocs.io/zh_CN/latest/2

    2018-03-01数据结构和算法(2) 1.6字典中的键映射多个值 一个字典就是一个键对应一个单值的映射.如果你想要一个键映射多个值,那么你就需要将这多个值放到另外的容器中, 比如列表或者集合里面. ...

  4. Flask类的属性和方法大全

    Flask Property__class____dict____doc____module__app_ctx_globals_classconfig_classdebugdefault_config ...

  5. ArcGis SOE(server object extensions)之REST Template初体验

    一.安装vs和arcgis server for .net(本例是vs2010.as 10),然后打开vs新建一个项目

  6. QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种)

    因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com/product ...

  7. js中几种实用的跨域方法原理详解【转】

    源地址:http://www.cnblogs.com/2050/p/3191744.html 这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通 ...

  8. ImportError: numpy.core.multiarray failed to import

    1. ImportError: numpy.core.multiarray failed to import pip install -U numpy http://stackoverflow.com ...

  9. 第六章之S5PV210正确启动u-boot

    1,根据上一章最后一步生成u-boot写入到板子上,生成如下代码 UARU 0x43110220 DDR IS OK! 0x12345678 0xEA000014 U-Boot - ::) CPU: ...

  10. spring中jedis对redis的事务使用注意总结

    spring的@Transactional不支持redis的事务,并且redis的事务和其它关系型数据库的事务概念不是太一样,redis事务不支持回滚,并且一条命令出错后,后面的命令还会执行. 所以不 ...