文档章节

Redis集群搭建

影狼
 影狼
发布于 2017/08/18 11:19
字数 604
阅读 17
收藏 0
  • 在3.0之前,提供了Sentinel工具来监控各Master的状态,如果Master异常,则会做主从切换,将slave切换为master,将master作为slave。
  • Redis3.0已经支持集群的容错功能。
  • 集群搭建:至少要三个master。
    • 创建一个文件夹redis-cluster,然后在其下面分别创建6个文件夹。
      • mkdir -p /usr/local/redis-cluster
      • mkdir 7001 7002 7003 7004 7005 7006
    • 把redis.conf配置文件分别copy到700中,进行修改各个文件内容,也就是对700下的每一个copy的redis.conf文件进行修改。
      • daemonize yes
      • port 700* (分别对每个机器的端口号进行设置)
      • bind 192.168.1.171(必须要绑定当前机器的ip)
      • dir /usr/local/redis-cluster/700*/ (指定数据文件存储位置,必须要指定不同的目录位置,不然会丢失数据)
      • cluster-enabled yes(启动集群模式)
      • cluster-config-file nodes700*.conf(这里700*最好跟port对应上)
      • cluster-node-timeout 5000
      • appendonly yes
    • 把修改后的配置文件,分别copy到各个文件夹下,注意每个文件要修改端口号,并且nodes文件也要补相同。
    • 由于redis集群需要使用ruby命令,所以我们要安装ruby。
      • yum install ruby
      • yum install rubygems
      • gem install redis(安装redis和ruby的接口)
    • 分别启动6个redis实例,然后检查是否启动成功
      • /usr/local/redis/bin/redis-server /usr/local/redis-cluster/700*/redis.conf
      • ps -el | grep redis 查看是否启动成功
    • 首先到redis的安装目录下,然后执行redis-trib.rb命令
      • cd /usr/local/redis/src
      • ./redis-trib.rb create --replicas 1 192.168.1.171:7001 192.168.1.171:7002 192.168.1.171:7003 192.168.1.171:7004 192.168.1.171:7005 192.168.1.171:7006
        • —replicas 1 表示主节点和从节点的比例,表示1个主节点下有一个从节点
    • 进行验证
      • 连接任意一个客户端即可:./redis-cli -c -h -p (-c表示集群模式,指定ip地址和端口)如./redis-cli -c -h 192.168.1.171 -p 700*
      • 进行验证:cluster info(查看集群信息)、cluster nodes(查看节点列表)
      • 进行数据操作验证
      • 关闭集群则需要逐个进行关闭,使用命令:/usr/local/redis/bin/redis-cli -c -h 192.168.1.171 -p 700* shutdown
    • 补充
      • 当出现集群无法启动时,删除临时的数据文件,再次重新启动每一个redis服务,然后重新构造集群环境。
  • Redis3.0操作集群
    • redis集群操作主要命令
      • create:构建集群
      • fix:单点修复
      • check:集群验证
      • add-node:添加节点
      • del-node:删除节点
      • reshard:重新分片

© 著作权归作者所有

共有 人打赏支持
影狼
粉丝 31
博文 134
码字总数 66657
作品 0
海淀
程序员
加载中

评论(1)

leehark
leehark
请问 有没有在生产环境下使用过redis3.0 cluster? 并发量有多少?遇到什么坑?

暂无文章

java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0
SpringBoot2.0 停机

最近新建了个SpringBoot2.0的项目,因为原来一直使用的是传统的Tomcat部署war包的形式,所以这次SpringBoot内置Tomcat部署jar包的时候遇到了很多问题。其中一个就是因为没有外置的Tomcat容器...

Canaan_
昨天
0
1
Confluence 6 外部参考

一个外部参考的意思是任何站点链接到你 Confluence 的实例。任何时候当 Confluence 的用户单击这个外部链接的时候,Confluence 可以记录这次单击为参考。 在默认的情况下,外部链接的参考链接...

honeymose
昨天
0
0
Android中的设计模式之抽象工厂模式

参考 《设计模式解析》 第十一章 Abstract Factory模式 《设计模式:可复用面向对象软件的基础 》3.1 Abstract Factory 抽象工厂 对象创建型模式 《Android源码设计模式解析与实战》第6章 创...

newtrek
昨天
0
0
Redis | 地理空间(GEO)的一个坑

Redis的地理空间(Geo)是个好东西,轻轻松松的就可以把地图描点的问题处理了, 最近却遇到一个坑...Redis采用的Msater-Slave模式, 运用GEORADIUS在salve读取对应的数据,新增了从节点但是从不返...

云迹
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部