上一篇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. (转)x264参数中文详解(X264 Settings)

    0 解释x264命令可选项的用途和使用方法.同执行 x264 --fullhelp 显示顺序.本文主要翻译:mewiki.project357.com/wiki/X264_Settings,同时参考d ...

  2. sqlserver 字符串split

    select value from TF_NJVALUES('3C457A2D-188B-4D99-A822-2968054E1FB8,3C457A2D-188B-4D99-A822-2968054E ...

  3. 完美解决jQuery符号$与其他javascript 库、框架冲突的问题

    目前有大量的 javascript 开发框架,其中有一部分使用 $ 作为调用符号,这可能导致相互之间的冲突,而 jQuery 为解决这个问题,可以在 jQuery 导入时放弃 $ 使用权,届时 $ 则 ...

  4. There are inconsistent line endings in the 'xxx' script. Some are Mac OS X (UNIX) and some are Windows.问题解决

    在Window上使用Visual Studio编辑Unity3D脚本时常会出现类似如下警告: 警告 1 There are inconsistent line endings in the 'Asse ...

  5. maven 配置多模块项目 pom modules

    所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml.它们之间通过继承和聚合(也称作多模块,multi-module)相互关联.那么,为什么要这么做呢?我们明明在开发一 ...

  6. impala不能查询hive中新增加的表问题

         使用Cloudera Manager部署安装的CDH和Impala,Hive中新增加的表,impala中查询不到,其原因是/etc/impala/conf下面没有hadoop和hive相关的 ...

  7. list的下标【python】

    转自:http://www.cnblogs.com/dyllove98/archive/2013/07/20/3202785.html list的下表从零开始,和C语言挺类似的,但是增加了负下标的使用 ...

  8. Win8/8.1下驱动安装“数据无效”错误的有效解决方法

    Windows8.1 安装完vmware 后并没有安装 vmnet1,vmnet8 这两个虚拟网卡,纠结了半天,原来是两个服务没打开. 如果你使用的是Windows8或者8.1,并且精简过系统,那么在 ...

  9. AFNetworking 上传文件

    本文转载至 http://blog.csdn.net/hmt20130412/article/details/36487055 文件上传AFNetworking @第一种:我的 #pragma mar ...

  10. Facebook广告目标摘要

    Facebook Ads look slightly different depending on the results you want. This guide includes recommen ...