上一篇http://www.cnblogs.com/qinyujie/p/9029153.html,主要讲解了 redis cluster 集群架构 的优势、redis cluster 和 redis replication + sentinal 对比、redis cluster 数据分片算法,并简单介绍了原始hash算法 和 一致性hash 算法 + 虚拟节点。从标题看,大家就知道本篇主要讲解 redis cluster 集群 搭建,闲话少说,俺们直接 开撸

环境准备:
centos6.5 minimal
redis-3.2.8
3 * master 3* slave

注意:redis cluster 集群正常工作至少需要3个主节点,一个高可用,健壮的分布式的集群,每个master都建议至少给一个slave,正式环境建议 6 台机器上去搭建,最少 3 台机器,为了模拟集群搭建,这里使用 3 台 虚拟机器 搭建 6 个实例的redis cluster

redis 安装

每个 node 上安装 redis (这里就不讲了)

redis cluster 相关配置介绍

cluster-enabled <yes/no> //是否启动 redis cluster 集群

cluster-config-file <filename> //指定一个文件,集群 redis实例保存集群状态位置,文件主要保存集群中其他机器的信息,比如节点的上线和下限,故障转移; 这是redis本身去维护的

cluster-node-timeout <milliseconds> //节点存活超时时间,超过milliseconds 时间,集群认为节点宕机,master宕机的话就会触发主备切换,slave宕机就不会提供服务

redis cluster 集群搭建

分别定义 6 个 redis 实例配置文件 : 6381.conf,6382.conf,6383.conf,6384.conf,6385.conf,6386.conf

redis 集群配置
在每个节点上redis 进行以下操作,以 6381为例

mkdir -p /etc/redis-cluster //集群信息保存统一目录

mkdir -p /var/log/redis //日志信息统一保存目录

mkdir -p /var/redis/6381 // redis 的持久化文件

 
目录创建
将 redis-3.2.8 下redis.conf 拷贝到 /etc/redis 目录中,并改名为 6381.conf,配置信息修改如下:

cd /usr/local/redis-3.2.8 && cp redis.conf /etc/redis/6381.conf

port 6381
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-6381.conf
cluster-node-timeout 15000
daemonize yes
pidfile /var/run/redis_6381.pid
dir /var/redis/6381
logfile /var/log/redis/6381.log
bind 192.168.43.16
appendonly yes
修改redis 实例启动脚本
  • 在/etc/init.d下,放6个启动脚本,分别为: redis_6381, redis_6382, redis_6383, redis_6384, redis_6385, redis_6386

cd redis-3.2.8 && cp utils/redis_init_script /etc/init.d/redis_6381 && chmod 777 /etc/init.d/redis_*

  • 每个启动脚本中,修改对应的端口号

    vim redis_6381

修改对应的启动脚本

其他6382,6383,6384,6385,6386 重复以上操作

节点 - redis 实例 对应关系:

192.168.43.16 6381
192.168.43.16 6382
192.168.43.17 6383
192.168.43.17 6384
192.168.43.18 6385
192.168.43.18 6386

创建集群

分别启动 6个redis 实例

cd /etc/init.d/ && ./redis_6381 start
cd /etc/init.d/ && ./redis_6382 start
cd /etc/init.d/ && ./redis_6383 start
cd /etc/init.d/ && ./redis_6384 start
cd /etc/init.d/ && ./redis_6385 start
cd /etc/init.d/ && ./redis_6386 start

通过redis-trib.rb 创建redis cluster

redis-trib.rb 需要ruby环境,所以需要安装ruby,只需要在一个node 中安装操作即可,这里在192.168.43.16 机器上安装

yum install -y ruby
yum install -y rubygems
gem install redis

cp /usr/local/redis-3.2.8/src/redis-trib.rb /usr/local/bin //创建软连接

创建集群

redis-trib.rb create --replicas 1 192.168.43.16:6381 192.168.43.16:6382 192.168.43.17:6383 192.168.43.17:6384 192.168.43.18:6385 192.168.43.18:6386

--replicas 表示每个master分配多少个slave

 
集群创建

上图 yes 确认接收当前分配继续完成集群创建

 
创建集群成功
检查集群信息

redis-trib.rb check 192.168.43.16:6381

redis cluster集群部署的更多相关文章

  1. centos6下redis cluster集群部署过程

    一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...

  2. Redis cluster 集群部署和配置

    目录 一.集群简介 cluster介绍 cluster原理 cluster特点 应用场景 二.集群部署 环境介绍 节点部署 启动集群 三.集群测试 一.集群简介 cluster介绍 redis clu ...

  3. redis cluster 集群部署

    准备工作 1. 安装docker curl -s https://get.docker.com/ | sh 注:一键安装的事最新版docker.已安装docker可跳过此步骤 2. 获取基础镜像 do ...

  4. K8S部署Redis Cluster集群

    kubernetes部署单节点redis: https://www.cnblogs.com/zisefeizhu/p/14282299.html Redis 介绍 • Redis代表REmote DI ...

  5. K8S部署Redis Cluster集群(三主三从模式) - 部署笔记

    一.Redis 介绍 Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理.它可以存储和操作高级数据类型,例如列表,地图,集合和排序 ...

  6. Redis Cluster集群知识学习总结

    Redis集群解决方案有两个: 1)  Twemproxy: 这是Twitter推出的解决方案,简单的说就是上层加个代理负责分发,属于client端集群方案,目前很多应用者都在采用的解决方案.Twem ...

  7. redis cluster 集群畅谈(三) 之 水平扩容、slave自动化迁移

    上一篇http://www.cnblogs.com/qinyujie/p/9029522.html, 主要讲解 实验多master写入.读写分离.实验自动故障切换(高可用性),那么本篇我们就来聊了聊r ...

  8. CentOS7 安装Redis Cluster集群

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

  9. 【精】搭建redis cluster集群,JedisCluster带密码访问【解决当中各种坑】!

    转: [精]搭建redis cluster集群,JedisCluster带密码访问[解决当中各种坑]! 2017年05月09日 00:13:18 冉椿林博客 阅读数:18208  版权声明:本文为博主 ...

随机推荐

  1. 后序线索二叉树中查找结点*p的后继

    在后序线索二叉树中查找结点*p的后继: 1.若结点*p为根,则无后继:2.若结点*p为其双亲的右孩子,则其后继为其双亲:3.若结点*p为其双亲的左孩子,且双亲无右子女,则其后继为其双亲:4.若结点*p ...

  2. POI-根据Cell获取对应的String类型值

    /** * 根据不同情况获取Java类型值 * <ul><li>空白类型<ul><li>返回空字符串</li></ul>< ...

  3. SharePoint 2013 网站迁移流程

    在新的Farm(场)里,创建一个新的Web Application(网站应用程序),不需要创建Site Collection(网站集) Copy(复制)自定义开发的WSP包到新的Farm Server ...

  4. SharePoint 2013 设置customErrors显示实际的错误信息

    一.首先设置IIS中的Web.config文件 找到对应的IIS应用程序目录,如:C:\inetpub\wwwroot\wss\VirtualDirectories\3000 在此文件夹下包含一个we ...

  5. Android中SurfaceView用法示例

    SurfaceView在游戏开发中有着举足轻重的地位,它对于画面的控制有着更大的自由度(不像View要用handler来更新,关于View的),但这方面的参考资料并不是太多,能找到的例子都有点喧宾夺主 ...

  6. 当singleton Bean依赖propotype Bean,可以使用在配置Bean添加look-method来解决

    在Spring里面,当一个singleton bean依赖一个prototype bean,因为singleton bean是单例的,因此prototype bean在singleton bean里面 ...

  7. Python 进阶(一)函数式编程

    来自慕课网: 简介: 函数:function ,在入门课程已学 函数式:functional,一种编程范式 函数式编程是一种抽象计算的编程模式,函数≠函数式,好比:计算≠计算机

  8. 如果程序太大而不能在DOS下运行,怎样才能使它在DOS下运行呢?

    如果你的程序因太大(超过640KB)而无法在DOS下运行,有两种办法可为该程序提供更多的内存.一种办法是使用覆盖管理程序(overlay manager).覆盖管理程序用来管理程序的模块,并根据需要把 ...

  9. Java创建数组的三种方法

    ■ 第一种: int[] arr=new int[6]; arr[0] = 1; arr[1] = 2 arr[2] = 3; arr[3] = 4; arr[4] = 5; arr[5] = 6; ...

  10. Ubuntu 14.04.02 安装openvswitch-2.3.1

    Open vSwitch安装 安装好操作系统 # lsb_release -a LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:c ...