一、本文目的
       演示在一台机器上搭建3主3从的redis集群,通过演示了解redis集群的搭建,使用和注意事项    

二、搭建说明
       1、同一台机器搭建3主3从的伪集群
       2、使用端口7111~7116,集群端口为端口前+1,如果使用端口7111,则其集群通信端口为17111,
             redis.config的配置如下:

daemonize port pidfile logfile cluster-enabled cluster-config-file cluster-node-timeout
7111 yes

7111

/var/run/redis7111.pid "redis7111.log" yes nodes-7111.conf 5000
7112

yes

7112

/var/run/redis7112.pid

"redis7112.log"

yes

nodes-7112.conf

5000

7113

yes

7113

/var/run/redis7113.pid

"redis7113.log"

yes

nodes-7113.conf

5000

7114

yes

7114

/var/run/redis7114.pid

"redis7114.log"

yes

nodes-7114.conf

5000

7115

yes

7115

/var/run/redis7115.pid

"redis7115.log"

yes

nodes-7115.conf

5000

7115

yes

7116

/var/run/redis7116.pid

"redis7116.log"

yes

nodes-7116.conf

5000

3、需要打开7111~7116、17111~17116一共12个端口


三、搭建过程
         1、安装搭建说明修改配置文件及打开所有端口,并启动6个redis               
          2、创建redis集群是使用ruby命令,故需要安装以下软件
1
2
3
4
5
6
7
8
9
安装 ruby 和 rubygems(注意: 需要 ruby 的版本在 1.8.7 以上)
# yum install ruby rubygems
 
检查 ruby 版本:
# ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
 
gem 安装 redis ruby 接口:
# gem install redis
         3、执行创建集群的命令(可在任何一个redis的src目录下执行)

a) redis-trib.rb  创建集群的rube命令
                 b) create 创建集群

c)  replicas 每个master包含一个slaver

d) 192.168.146.131:7111 每个redis实例的ip+端口,每个实例根据空格分开

1
2
3
cd /usr/local/redis7111/src
 
./redis-trib.rb create replicas 1 192.168.146.131:7111 192.168.146.131:7112 192.168.146.131:7113 192.168.146.131:7114 192.168.146.131:7115 192.168.146.131:7116

4、系统分配Master、Slaver集群关系

                   5、Slot插槽分配结果


四、集群的测试
              1、设置key 

2、 在另外一个集群机器上读取刚设置的key

3、查看集群间的关系、Master/Slaver之间的关系

 

五、总结
  1. 集群中各台机器的配置信息一致,Master/Slaver关系是在创建集群时由系统分配
  2. redis集群公用16384个slot,分配给不同的Master
  3. 每个key最终都会位于某一个slot,读取key时会先转向到某一个slot,然后读取其中的值
  4. 新增集群或减少集群(如新增或减少Master)会重新分配slot
  5. 集群的Master/Slaver不知道怎么做容灾,自动切换等,等待进一步研究

六、参考资料


 
 

Redis集群(五):集群搭建的更多相关文章

  1. redis系列(五):搭建redis-cluster集群

    1.为什么要用redis-cluster a.并发要求 redis官方声称可以达到10万每秒,但是如果业务需要每秒100万条呢?b.数据量太大 一台服务器的内存正常是16-256G,如果业务需要500 ...

  2. Redis单机版以及集群版的安装搭建以及使用

    1,redis单机版 1.1   安装redis n  版本说明 本教程使用redis3.0版本.3.0版本主要增加了redis集群功能. 安装的前提条件: 需要安装gcc:yum install g ...

  3. redis安装、测试&集群的搭建&踩过的坑

    1 redis的安装 1.1   安装redis 版本说明 本教程使用redis3.0版本.3.0版本主要增加了redis集群功能. 安装的前提条件: 需要安装gcc:yum install gcc- ...

  4. 转:Redis 3.2.1集群搭建

    Redis 3.2.1集群搭建   一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2) ...

  5. Redis cluster集群:原理及搭建

    Redis cluster集群:原理及搭建 2018年03月19日 16:00:55 阅读数:6120 1.为什么使用redis? redis是一种典型的no-sql 即非关系数据库 像python的 ...

  6. Redis总结(五)缓存雪崩和缓存穿透等问题 Web API系列(三)统一异常处理 C#总结(一)AutoResetEvent的使用介绍(用AutoResetEvent实现同步) C#总结(二)事件Event 介绍总结 C#总结(三)DataGridView增加全选列 Web API系列(二)接口安全和参数校验 RabbitMQ学习系列(六): RabbitMQ 高可用集群

    Redis总结(五)缓存雪崩和缓存穿透等问题   前面讲过一些redis 缓存的使用和数据持久化.感兴趣的朋友可以看看之前的文章,http://www.cnblogs.com/zhangweizhon ...

  7. Redis总结(八)如何搭建高可用的Redis集群

    以前总结Redis 的一些基本的安装和使用,大家可以这这里查看Redis 系列文章:https://www.cnblogs.com/zhangweizhong/category/771056.html ...

  8. Redis 5.0.5集群搭建

    Redis 5.0.5集群搭建 一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2):s ...

  9. Redis之高可用、集群、云平台搭建

    原文:Redis之高可用.集群.云平台搭建 文章大纲 一.基础知识学习二.Redis常见的几种架构及优缺点总结三.Redis之Redis Sentinel(哨兵)实战四.Redis之Redis Clu ...

  10. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

随机推荐

  1. Caffe 抽取CNN网络特征 Python

    Caffe Python特征抽取 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ Caffe大家一般用到的深度学 ...

  2. bzoj2748[HAOI2012]音量调节(背包问题的方案)

    Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改 ...

  3. Android系统自带APP分析——短信app

    Android操作系统本身就是一个巨大的开源软件仓库,熟悉它既可以了解到Android系统的设计框架,也可以获得高效的应用程序编写方式.本文所分析的源码来自于Google官方的AOSP源码4.0.1_ ...

  4. tomcat安装配置.md

    tomcat 安装 安装jdk jdk我使用的是oracle的,如果下载请在oracle的官网上下载.或者你也可以使用openjdk,官网在http://openjdk.java.net/. # ta ...

  5. iOS崩溃调试的使用和技巧总结

    在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题.简单的崩溃还好说,复杂的崩溃就需要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比较常见的. 现在网上有很多关于解 ...

  6. Html5 Egret游戏开发 成语大挑战(四)选关界面

    通过前面的开始界面基本上了解了eui的使用方法,可以简单快速的制作一个UI界面,本篇使用第二界面选关界面展示更为难一点的代码控制,来展现关卡地图的内容,请确保素材和资源完整,可以在前面的教程中找到下载 ...

  7. 关于viewpager 里嵌套 listview 同时实现翻页功能的“java.lang.IllegalStateException: The specified child..."异常处理

    这几天做项目用到了ViewPager,因为它可以实现左右划动多个页面的效果,然后 再每个页面里使用ListView,运行时总是出现”PagerAdapter java.lang.IllegalStat ...

  8. CodeSmith操作Access时字段的排序问题

    最近在用CodeSmith操作写ACCESS数据库的代码模版,发现CodeSmith默认的字段顺序与ACCESS中表的字段顺序不一致. 首先在ACCESS数据库中建一个测试表Test,并添加ID.Na ...

  9. RSA签名验签学习笔记

    RSA私钥签名时要基于某个HASH算法,比如MD5或者SHA1等.之前我一直认为签名的过程是:先对明文做HASH计算,然后用私钥直接对HASH值加密.最近才发现不是那么简单,需要对HASH后的数据进行 ...

  10. SQLServer(MSSQL)、MySQL、SQLite、Access相互迁移转换工具 DB2DB v1.4

    最近公司有一个项目,需要把原来的系统从 MSSQL 升迁到阿里云RDS(MySQL)上面.为便于测试,所以需要把原来系统的所有数据表以及测试数据转换到 MySQL 上面.在百度上找了很多方法,有通过微 ...