使用Ruby脚本部署Redis Cluster集群步骤讲解

安装Ruby和Gem

下载ruby
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.8.tar.gz
解压
tar xvf ruby-2.3.8.tar.gz
生成Makefile并且后面会被安装到/usr/local/ruby目录下
./configure -prefix /usr/local/ruby
编译
make
安装
make install
cd /usr/local/ruby
cp bin/ruby /usr/local/bin/
cp bin/gem /usr/local/bin/

安装Ruby和redis接口

下载

wget  https://rubygems.org/downloads/redis-4.1.0.gem

安装

gem install -l redis-4.1.0.gem

将脚本移动到/usr/local/bin/下,方便直接执行

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

启动Redis节点

8000端口配置文件模板,其余节点只有端口不同

# redis-8000.conf
daemonize yes
port 8000
logfile "8000.log"
dir "/server/redis_data"
dbfilename "dump-8000.rdb"
cluster-enabled yes
cluster-config-file nodes-8000.conf
cluster-require-full-coverage no

启动节点

redis-server redis-8000.conf
redis-server redis-8001.conf
redis-server redis-8002.conf
redis-server redis-8003.conf
redis-server redis-8004.conf
redis-server redis-8005.conf 

一键开启

redis-trib.rb create --replicas 1 10.238.162.34:8000 10.238.162.34:8001\
10.238.162.34:8002 10.238.162.34:8003\
10.238.162.34:8004 10.238.162.34:8005

# redis-cli -p 8000 cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:695
cluster_stats_messages_received:695
# redis-cli -p 8000 cluster nodes
4dd758d1f84285cbe82cd51f4b1bdce08f10d067 10.238.162.34:8004 slave cbcb2f95d3c66c3ad2203fb268be39eef8567317 0 1547215299946 5 connected
860069c03aefeb7449aa6daf2f198d90f1f19b01 10.238.162.34:8002 master - 0 1547215297941 3 connected 10923-16383
cbcb2f95d3c66c3ad2203fb268be39eef8567317 10.238.162.34:8001 master - 0 1547215298944 2 connected 5461-10922
e84313e39765087ff8bfe4bf86b10717d82c9698 10.238.162.34:8003 slave 90d1c2da65f7ee8cd7d16a7790384903bd4ccc8e 0 1547215297440 4 connected
bc0e954a60920a24c2bfa351c042470f1d8dda07 10.238.162.34:8005 slave 860069c03aefeb7449aa6daf2f198d90f1f19b01 0 1547215296940 6 connected
90d1c2da65f7ee8cd7d16a7790384903bd4ccc8e 10.238.162.34:8000 myself,master - 0 0 1 connected 0-5460

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Linux下redis的持久化、主从同步与哨兵详解

    1.0 redis持久化 Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失. 1|1RDB持久化 redis提供了RDB持久化的功能,在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)这个功能可以将redis在内存中的的状态保存到硬盘中,RDB持久化产生的RDB文件是一个经过压缩的二进制文件,这个文件被保存在硬盘中,redis可以通过这个文件

  • Redis主从复制详解

    单机Redis存在的问题 无法故障转移 ,无法避免单点故障 磁盘空间的瓶颈 QPS瓶颈 Redis主从复制的作用 提供数据副本 扩展读性能 配置方法 通过命令 通过配置文件 演示 为方便演示,在一台服务器上搭建redis主从(生产上不会这样做),根据端口区分. 主库 6379 从库 6380 编辑配置文件 vi  redis-6379.conf #后台进程启动 daemonize yes #端口 port 6379 #日志文件名称 logfile "6379.log" #Redis工作

  • Redis Cluster的图文讲解

    1.1 Redis-Cluster简介 1.1.1 什么是Redis-Cluster 为何要搭建Redis集群.Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB.Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群. Redis集群搭建的方式有多种,例如使用客户端分片.Twemproxy.Codis等,但从re

  • MySQL和Redis实现二级缓存的方法详解

    redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储 Redis支持数据的备份,即master-slave模式的数据备份 优势 性能极高 - Redis能读的速度是110

  • Redis连接错误的情况总结分析

    前言 最近由于流量增大,redis 出现了一连串错误,比如: LOADING Redis is loading the dataset in memory use of closed network connection connection pool exhausted connection refuse by peer 一个个来分析. LOADING Redis is loading the dataset in memory 这里至少有2种可能 可用内存太小,修改 redis.conf 中

  • gem install redis报错的解决方案

    在使用ruby脚本安装Redis集群时,需要先安装Ruby语言环境和redis插件,但是安装redis插件时遇到以下报错,下面记录一下解决过程. 因为执行Ruby脚本需要Ruby语言环境,所以首先安装Ruby语言环境和Ruby的包管理器Gems. 然后使用gem安装Redis和Ruby的接口. RubyGems 是 Ruby 的一个包管理器,它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具. RubyGems 旨在方便地管理 gem 安装的工具,以及用于分发 gem

  • PHP实现基于Redis的MessageQueue队列封装操作示例

    本文实例讲述了PHP实现基于Redis的MessageQueue队列封装操作.分享给大家供大家参考,具体如下: Redis的链表List可以用来做链表,高并发的特性非常适合做分布式的并行消息传递. 项目地址:https://github.com/huyanping/Zebra-PHP-Framework 左进右出 $redis->lPush($key, $value); $redis->rPop($key); 以下程序已在生产环境中正式使用. 基于Redis的PHP消息队列封装 <?ph

  • 如何使用Redis保存用户会话Session详解

    前言 PHP内置的绘画存储机制是把全部的会话数据保存在服务器上的文本文件里面,这些文件通常都是保存在服务器上的临时目录里.如果并发量大,读写效率非常低.而Redis对高并发的支持非常好,所以,可以使用redis替代文件存储session. 下载源码 session_set_save_handler函数 PHP的session_set_save_handler函数用来定义用户级session保存函数(如打开.关闭.写入等).原型如下: bool session_set_save_hanler(ca

  • 详解Redis中Lua脚本的应用和实践

    引言 前段时间组内有个投票的产品,上线前考虑欠缺,导致被刷票严重.后来,通过研究,发现可以通过 redis lua 脚本实现限流,这里将 redis lua 脚本相关的知识分享出来,讲的不到位的地方还望斧正. redis lua 脚本相关命令 这一小节的内容是基本命令,可粗略阅读后跳过,等使用的时候再回来查询 redis 自 2.6.0 加入了 lua 脚本相关的命令,EVAL.EVALSHA.SCRIPT EXISTS.SCRIPT FLUSH.SCRIPT KILL.SCRIPT LOAD,

  • 一篇文章让你明白Redis主从同步

    今天想和大家分享有关 Redis 主从同步(也称「复制」)的内容. 我们知道,当有多台 Redis 服务器时,肯定就有一台主服务器和多台从服务器.一般来说,主服务器进行写操作,从服务器进行读操作. 那么这里有存在一个问题:从服务器如何和主服务器进行数据同步的呢? 这个问题,就是通过今天的内容:主从同步来解决的. 文章内容依旧比较干,建议大家静下心来专心看,文末会给大家做个简单总结归纳. 1. 如何进行主从同步 假如,现在有 2 台 Redis 服务器,地址分别是 127.0.0.1:6379 和

随机推荐