redis集群搭建

阅读目录

  • 1. 准备ruby环境
  • 2. 目录 & 配置文件
  • 3. 集群操作
  • redis 集群
  • ruby
  • redis版本:redis-4.0.11
  • os:centos 7
  • ruby版本:2.3.5
  • ruby-redis:4.0.2
# 可能需要的一些准备;非必须;必须的为 c、c++、zlibyum install gcc-c++ patch readline readline-devel zlib zlib-develyum install libyaml-devel libffi-devel openssl-devel makeyum install bzip2 autoconf automake libtool bison iconv-devel sqlite-devel

centos 7 安装 redis

# 下载 & 编译cd /optwget http://download.redis.io/releases/redis-4.0.11.tar.gztar xzf redis-4.0.11.tar.gzcd redis-4.0.11make# 编译后的可执行文件输出到 ./src下# 创建软连接ln -s /opt/redis-4.0.11/src/redis-server /usr/bin/redis-serverln -s /opt/redis-4.0.11/src/redis-cli /usr/bin/redis-cliln -s /opt/redis-4.0.11/src/redis-trib.rb /usr/bin/redis-trib.rb# 测试redis-server -vredis-cli -v

集群

redis集群使用redis提供的redis-trib.rb ruby 脚本进行操作,因此需要先准备ruby环境。

回到顶部

1. 准备ruby环境

yum上的ruby版本2.0,不能直接使用yum上的版本。
这里使用2.3.5,官网tar.gz包,make方式安装;其他版本同理。

# 安装rubycd /optwget http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.5.tar.gztar zxf  ruby-2.3.5.tar.gzcd ruby-2.3.5./configure  --prefix=/opt/rubymake && make install# 软连接ln -s /opt/ruby/bin/ruby /usr/bin/rubyln -s /opt/ruby/bin/gem /usr/bin/gem# 测试ruby -vgem -v# 安装ruby gem redis依赖wget http://rubygems.org/downloads/redis-4.0.2.gemgem install -l redis-4.0.2.gem# gem 卸载: gem uninstall redis# gem list: gem list --local# 测试redis-trib.rb

zlib 问题

  • 报错如下:
[root@mongo-dev opt]# gem install -l redis-4.0.2.gem ERROR:  Loading command: install (LoadError)cannot load such file -- zlibERROR:  While executing gem ... (NoMethodError)    undefined method `invoke_with_build_args' for nil:NilClass
  • 解决:
# 安装zlib依赖yum install zlib-devel# 集成zlib库到ruby环境cd /opt/ruby-2.3.5/ext/zlib/ruby extconf.rbmake && make install

直接使用gem安装ruby redis依赖

gem install redis
回到顶部

2. 目录 & 配置文件

  1. 创建目录
    集群至少有3台机器,每台机器需要1个备份节点,至少需要6个服务节点。这里用一台机器模仿6个节点,直接创建6个目录。
# 所有节点/data/redis├── 7000├── 7001├── 7002├── 7003├── 7004└── 7005# 单个节点目录结构;logs需要提前创建/data/redis/7000├── logs└── redis.conf
  1. 需要修改的配置文件
# 注释掉所有bind,对外网开放# bind 127.0.0.1port 7000daemonize yespidfile /var/run/redis_7000.pidlogfile "/data/redis/7000/logs/log.log"dir /data/redis/7000# 开启密码,密码:attaboyrequirepass attaboymasterauth attaboy# 限制客户端连接maxclients 10000appendonly yes# 集群cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 15000

将配置文件复制到其他文件夹,并修改端、文件夹、pid信息

port 7000pidfile /var/run/redis_7000.pidlogfile "/data/redis/7000/logs/log.log"dir /data/redis/7000

直接使用sed修改

cd 7001sed -i 's/7000/7001/g' redis.conf # 比较diff redis.conf ../7000/redis.conf

或者:以7000为源,直接复制

for i in {7001..7005};do cp -r 7000/ $i;sed -i 's/7000/'$i'/g' ./$i/redis.conf;done
  1. 启动

    # 启动单台redis-server /data/redis/7000/redis.conf# 关闭单台redis-cli -p 7000 -a attaboy shutdown# 启动全部cd /data/redisfor i in {7000..7005};do redis-server ./$i/redis.conf;done# 关闭全部pids=`ps aux|grep "redis-server"|grep -v grep|awk '{print $2}'`;kill $pids# 查看ps aux|grep redis
  2. 集群

    # 修改 vim /opt/redis-4.0.11/src/redis-trib.rb # 增加密码 99             @r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60, :password => "attaboy")# 创建集群,此处ip一定要用外网可访问的ip,千万不可用localhost、127.0.0.1;此处仅演示,不可直接复制。redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
  3. 使用

redis-cli -c -p 7000auth attaboyset kkkk 111get kkkk
回到顶部

3. 集群操作

# 对集群进行重新分片;只需要指定集群中其中一个节点的地址redis-trib.rb reshard 127.0.0.1:7000# 添加新节点到集群; add-node 后面第一个为新增节点,后面为已存在的节点redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000

一键安装脚本

将上面的分布安装集合成一个一键安装脚本。

#!/bin/sh# centos 6.5 install redis & ruby# install dir /opt/# ========================== lib ==========================yum install zlib-devel# ========================== redis ==========================cd /optwget http://download.redis.io/releases/redis-4.0.11.tar.gztar xzf redis-4.0.11.tar.gzcd redis-4.0.11makeln -s /opt/redis-4.0.11/src/redis-server /usr/bin/redis-serverln -s /opt/redis-4.0.11/src/redis-cli /usr/bin/redis-cliln -s /opt/redis-4.0.11/src/redis-trib.rb /usr/bin/redis-trib.rb# for test# redis-server -v# redis-cli -v# ========================== ruby ==========================cd /optwget http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.5.tar.gztar zxf  ruby-2.3.5.tar.gzcd ruby-2.3.5# for check# ./configure  --prefix=/opt/rubymake && make installln -s /opt/ruby/bin/ruby /usr/bin/rubyln -s /opt/ruby/bin/gem /usr/bin/gem# for test# ruby -v# gem -v# ========================== ruby-redis ==========================cd /optwget http://rubygems.org/downloads/redis-4.0.2.gemgem install -l redis-4.0.2.gem# for test# redis-trib.rb

windows 桌面程序

参考

回到顶部

redis 集群

  1. Redis 集群搭建详细指南
  2. centos7/rhel7下安装redis4.0集群
  3. 搭建 CentOS 6 服务器(5) - Ruby/Rails环境
  4. Redis 集群教程
  5. Redis 命令参考
回到顶部

ruby

  1. rvm安装,网络存在问题不推荐此方式:centos7/rhel7安装较高版本ruby2.2/2.3/2.4+
  2. How to Install Ruby 2.2.4 on CentOS/RHEL with RVM
(0)

相关推荐

  • Fluentd部署:如何监控Fluentd

    今天的文章主要介绍一下如何监控Fluentd.监控的目的是确保日志采集能稳定高效运行. Fluentd内部运行指标 Fluentd内部保存着一些运行指标,这些指标可通过REST api直接获取,也支持 ...

  • 02.Kafka快读入门

    安装部署 先下载zookeeper.kafka zookeeper下载地址:Download kafka下载地址:Download 集群规划 hadoop001 hadoop002 zk zk kaf ...

  • 硬核干货!Redis 分布式集群部署实战

    原理: Redis集群采用一致性哈希槽的方式将集群中每个主节点都分配一定的哈希槽,对写入的数据进行哈希后分配到某个主节点进行存储. 集群使用公式(CRC16 key)& 16384计算键key ...

  • 为什么Redis集群要使用反向代理?

    为什么要使用反向代理? 如果没有反向代理,一台Redis可能需要跟很多个客户端连接: 看着是不是很慌?看没关系,主要是连接需要消耗线程资源,没有代理的话,Redis要将很大一部分的资源用在与客户端建立 ...

  • MySQL主从复制集群搭建—binlog二进制文件方式

    老哥絮叨 上篇文章我们大致介绍了什么是MySQL主从复制,主从复制的几种集群架构图大概都有哪几种,今天我们就来讲讲如何实现MySQL集群的搭建.主从复制有两种方式可以实现,binlog和GTID,这期 ...

  • 如何从0到1构建一个稳定、高性能的Redis集群?(附16张图解)

    阅读本文大约需要 13 分钟. 这篇文章我想和你聊一聊 Redis 的架构演化之路. 现如今 Redis 变得越来越流行,几乎在很多项目中都要被用到,不知道你在使用 Redis 时,有没有思考过,Re ...

  • KubeEdge集群搭建

    KubeEdge集群搭建 1. 前言 上一篇文章我把整个KubeEdge的宏观架构设计讲了一遍,今天的内容是实操实践,手把手教你搭建KubeEdge集群. 2. 准备工作 需要两台机器,不管是笔记本也 ...

  • Redis集群方案怎么做?Python学习教程

    Redis集群方案该怎么做?都有哪些方案?Redis回收进程是如何工作的?这是面试找工作期间最常见的问题,接下来我们一起来看看吧. Redis集群方案该怎么做?具体分为三种: 1. codis:目前用 ...

  • Zookeeper的安装与集群搭建

    简介 Zookeeper下载 官网地址:点我直达 百度云盘:点我直达 踩坑录 官网下载一定要下载带bin的 要不然zookeeper起不起来,找不到加载类,原来从版本3.5.5开始,带有bin名称的包 ...

  • Zookeeper简介与集群搭建

    Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...

  • Zookeeper分布式集群搭建

    文中Zookeeper分布式集群搭建在Linux CentOS7系统之上.搭建大数据分布式集群,不建议使用root用户直接操作,故文中使用bigdata用户进行集群的搭建. 一.环境准备 软件 版本 ...

  • 阿里云ECS服务器部署HADOOP集群(二):HBase完全分布式集群搭建(使用外置ZooKeeper)

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...