用redis-trib.rb搭建redis集群

1,准备ruby环境

安装ruby

 wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.gz
 tar xvf ruby-2.4.1.tar.gz 
 cd ruby-2.4.1.tar.gz
 cd ruby-2.4.1
 ./configure --prefix=/usr/local/ruby
 make
 make install
 cp bin/ruby /usr/local/bin/
 cp bin/gem /usr/local/bin/

安装rubygem redis依赖:

 wget http://rubygems.org/downloads/redis-3.3.0.gem
 gem install -l redis-3.3.0.gem 
 gem list | grep redis

安装redis-trib.rb:

cp /opt/redis/redis-3.2.4/src/redis-trib.rb /usr/local/bin/

/opt/redis/redis-3.2.4/目录对应的redis源码包解压目录

2,准备集群节点

在普通redis配置文件中加上这三项即可:

cluster-enabled yes  #开启群集模式
cluster-node-timeout 15000  #节点超时时间,单位为毫秒
cluster-config-file "nodes-6379.conf"  #指定集群内部的配置文件
ll /data/app/redis3.2.4/conf
-rw-r--r--. 1 root  root  2229 Jul 11 01:50 redis_6479.conf
-rw-r--r--. 1 root  root  2229 Jul 11 01:50 redis_6480.conf
-rw-r--r--. 1 root  root  2229 Jul 11 01:51 redis_6481.conf
-rw-r--r--. 1 root  root  2229 Jul 11 01:51 redis_6482.conf
-rw-r--r--. 1 root  root  2229 Jul 11 01:51 redis_6483.conf
-rw-r--r--. 1 root  root  2229 Jul 11 01:51 redis_6484.conf

启动节点:

redis-server redis_6479.conf
redis-server redis_6480.conf
redis-server redis_6481.conf
redis-server redis_6482.conf
redis-server redis_6483.conf
redis-server redis_6484.conf

3,创建集群

redis-trib.rb create --replicas 1 127.0.0.1:6479 127.0.0.1:6480 127.0.0.1:6481 127.0.0.1:6482 127.0.0.1:6483 127.0.0.1:6484

# --replicas 1 代表每个主节点配置多少个从节点

>>> Creating cluster

/usr/local/ruby/lib/ruby/gems/2.4.0/gems/redis-3.3.0/lib/redis/client.rb:459: warning: constant ::Fixnum is deprecated

>>> Performing hash slots allocation on 6 nodes...

Using 3 masters:

127.0.0.1:6479

127.0.0.1:6480

127.0.0.1:6481

Adding replica 127.0.0.1:6482 to 127.0.0.1:6479

Adding replica 127.0.0.1:6483 to 127.0.0.1:6480

Adding replica 127.0.0.1:6484 to 127.0.0.1:6481

M: 78581cf153d821c734c238d00f4de264fc95072e 127.0.0.1:6479

   slots:0-5460 (5461 slots) master

M: d0d4a89f567aed7caa4b87e78be2b6b1b86d02d3 127.0.0.1:6480

   slots:5461-10922 (5462 slots) master

M: e71eae6b79e529997fb7716da6d20be68e76830d 127.0.0.1:6481

   slots:10923-16383 (5461 slots) master

S: cd2f4e96f575b7b84d48144e832bf7cd6fcd8fc1 127.0.0.1:6482

   replicates 78581cf153d821c734c238d00f4de264fc95072e

S: 89e54b0f1fd33adf5ef624104e7d17bb93785b3d 127.0.0.1:6483

   replicates d0d4a89f567aed7caa4b87e78be2b6b1b86d02d3

S: b1ad93513254bb6bcb3cc6166afc7d4a89458802 127.0.0.1:6484

   replicates e71eae6b79e529997fb7716da6d20be68e76830d

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 127.0.0.1:6479)

M: 78581cf153d821c734c238d00f4de264fc95072e 127.0.0.1:6479

   slots:0-5460 (5461 slots) master

   1 additional replica(s)

S: cd2f4e96f575b7b84d48144e832bf7cd6fcd8fc1 127.0.0.1:6482

   slots: (0 slots) slave

   replicates 78581cf153d821c734c238d00f4de264fc95072e

S: b1ad93513254bb6bcb3cc6166afc7d4a89458802 127.0.0.1:6484

   slots: (0 slots) slave

   replicates e71eae6b79e529997fb7716da6d20be68e76830d

M: d0d4a89f567aed7caa4b87e78be2b6b1b86d02d3 127.0.0.1:6480

   slots:5461-10922 (5462 slots) master

   1 additional replica(s)

M: e71eae6b79e529997fb7716da6d20be68e76830d 127.0.0.1:6481

   slots:10923-16383 (5461 slots) master

   1 additional replica(s)

S: 89e54b0f1fd33adf5ef624104e7d17bb93785b3d 127.0.0.1:6483

   slots: (0 slots) slave

   replicates d0d4a89f567aed7caa4b87e78be2b6b1b86d02d3

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

4,集群完整性检查

redis-trib.rb check 127.0.0.1:6479

/usr/local/ruby/lib/ruby/gems/2.4.0/gems/redis-3.3.0/lib/redis/client.rb:459: warning: constant ::Fixnum is deprecated

>>> Performing Cluster Check (using node 127.0.0.1:6479)

M: 78581cf153d821c734c238d00f4de264fc95072e 127.0.0.1:6479

   slots:0-5460 (5461 slots) master

   1 additional replica(s)

S: cd2f4e96f575b7b84d48144e832bf7cd6fcd8fc1 127.0.0.1:6482

   slots: (0 slots) slave

   replicates 78581cf153d821c734c238d00f4de264fc95072e

S: b1ad93513254bb6bcb3cc6166afc7d4a89458802 127.0.0.1:6484

   slots: (0 slots) slave

   replicates e71eae6b79e529997fb7716da6d20be68e76830d

M: d0d4a89f567aed7caa4b87e78be2b6b1b86d02d3 127.0.0.1:6480

   slots:5461-10922 (5462 slots) master

   1 additional replica(s)

M: e71eae6b79e529997fb7716da6d20be68e76830d 127.0.0.1:6481

   slots:10923-16383 (5461 slots) master

   1 additional replica(s)

S: 89e54b0f1fd33adf5ef624104e7d17bb93785b3d 127.0.0.1:6483

   slots: (0 slots) slave

   replicates d0d4a89f567aed7caa4b87e78be2b6b1b86d02d3

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

当看到[OK] All 16384 slots covered.时代表集群所有的槽位都已经分配出去。

时间: 2024-10-26 22:12:38

用redis-trib.rb搭建redis集群的相关文章

Redis.之.环境搭建(集群)

Redis.之.环境搭建(集群) 现有环境: /u01/app/ |- redis # 单机版 |- redis-3.2.12    # redis源件 所需软件:redis-3.0.0.gem ------------------------------------------------------------------------------ 开始安装: 1. 安装ruby # yum -y install ruby # yum -y install rubygems # gem ins

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

本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用(主从.事务与锁.持久化)> 本文我们继续学习redis的高级特性--集群.本文主要内容包括集群搭建.集群分区原理和集群操作的学习. Redis集群简介 Redis 集群是3.0之后才引入的,在3.0之前,使用哨兵(sentinel)机制(本文将不做介绍,大家可另行查阅)来监控各个节点之间的状态.Redi

Linux Redis集群搭建与集群客户端实现

我们要在单台机器上搭建Redis集群,方式是通过不同的TCP端口启动多个实例,然后组成集群. 1.启动Redis多个实例 我们在Redis安装目录下创建目录cluster,并编写7000.conf~7005.conf 6个配置文件,这6个配置文件用来启动6个实例,后面将使用这6个实例组成集群. 以7000.conf为例,配置文件需要填写如下几项. port 7000 //端口7000,7002,7003 bind 10.93.84.53 //默认ip为127.0.0.1 需要改为其他节点机器可访

redis高级应用(集群搭建、集群分区原理、集群操作)

文章主目录 Redis集群简介 Redis集群搭建 Redis集群分区原理 集群操作 参考文档 本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用(主从.事务与锁.持久化)> 本文我们继续学习redis的高级特性--集群.本文主要内容包括集群搭建.集群分区原理和集群操作的学习. 回到顶部 Redis集群简介 Redis 集群是3.0之后才引入的,在3.0

Redis 非关系性数据库集群的搭建与常用方法

redis 非关系型数据库,内存型数据库,现在大家都不陌生了,无论大中小型企业,都会将redis应用到自己的项目中,以此来减轻数据库的压力 安装步骤: 1.安装gcc 安装c语言的编译环境 yum install gcc-c++ 2.解压缩并且编译 tar -zxvf redis-3.2.1 //进入解压缩后的目录执行 make // 将编译后的文件放入/usr/local/redis 下,自己定义 make install PREFIX=/usr/local/redis 3.进行redis 后

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

1.为什么要用redis-cluster a.并发要求 redis官方声称可以达到10万每秒,但是如果业务需要每秒100万条呢?b.数据量太大 一台服务器的内存正常是16-256G,如果业务需要500G内存怎么办? 2.搭建redis-cluster 针对上述问题,redis-cluster集群就提供了很好的解决方案. (1).先准备环境,开启多个redis实例 [[email protected] redis_conf]# ls redis-7000.conf redis-7002.conf

redis单点、主从、集群cluster配置搭建与使用

目录 redis单点.主从.集群cluster配置搭建与使用 1 .redis 安装及配置 1.1 redis 单点 1.1.2 在命令窗口操作redis 1.1.3 使用jedis客户端操作redis 1.1.4 使用spring-redis操作 1.2 redis 主从 1.3 哨兵sentinel 1.3.2 哨兵sentinel配置 1.3.3 启动哨兵,使用jedis连接哨兵操作redis 1.3.4 编写程序&运行 1.3.5模拟主节点宕机情况 1.4 redis cluster 1

Python Django 集成Redis Sentinel(哨兵)集群开发秒杀系统

我们知道秒杀系统最大特点是瞬时高并发.高访问量的系统.我们还要保证它的高可用性.这里我们采用Python Django 集成Redis Sentinel(哨兵)集群开发秒杀系统. Redis Sentinel(哨兵)集群Redis哨兵为Redis集群提供了高可用性.实际上这意味着我们可以使用哨兵模式创建一个可以不用人为干预而应对各种故障的Redis集群部署.可大大提高系统的高可用性. 哨兵模式还提供了其他的附加功能,如监控,通知,为客户端提供配置. 下面是在宏观层面上哨兵模式的功能列表: 监控:

Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别

谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能. 复制(Replication):则是负责让一个Redis服务器可以配备多个备份的服务器. Redis正是利用这两个功能来保证Redis的高可用. 哨兵(sentinal) 哨兵是Redis集群架构中非常重要的一个组件,哨兵的出现主要是解决了主从复制出现故障时需要人为干预的问题. 1.Redis哨兵

Redis哨兵、复制、集群的设计原理,以及区别

广西SEO:谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. **哨兵(Sentinel):**可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能. **复制(Replication):**则是负责让一个Redis服务器可以配备多个备份的服务器. Redis正是利用这两个功能来保证Redis的高可用. 哨兵(sentinal) 哨兵是Redis集群架构中非常重要的一个组件,哨兵的出现主要是解决了主从复制出现故障时需要人为干预