redis集群中至少应该有三个节点,以保证当集群中的某个节点挂掉,其他节点进行容错投票时,投票数能超过半票. 要保证高可用,则还需要每一个节点有一个备份机. 因此redis集群至少需要6台服务器.这里使用搭建伪分布式的方式,可以使用一台虚拟机运行6个redis实例.此时需要修改6个redis实例为不同的端口号

redis cluster管理工具redis-trib.rb 
搭建redis集群环境需要redis cluster管理工具redis-trib.rb, 
redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集群命令封装成简单、便捷、实用的操作工具。redis-trib.rb是redis用ruby完成的

一、安装redis4.0.9软件包
tar fxv redis-4.0.9.tar.gz
yum -y install gcc tcl
cd redis-4.0.9
make MALLOC=libc && make test

二、安装集群管理工具ruby2.4.4
mkdir /usr/local/redis_cluster ##创建集群文件存放目录便于管理
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz ###ruby官方网站
tar fxv ruby-2.4.4.tar.gz
cd ruby-2.4.4
./configure --prefix=/usr/local/redis_cluster/ruby ###编译并指定安装目录所在位置
make && make install ###时间有点长! 注意看它停不停止就行!
cd /usr/local/redis_cluster/ruby
cp bin/ruby /usr/local/bin ###方便直接使用ruby和gem命令,若不复制,则使用ruby命令需要到此目录下才能用
cp bin/gem /usr/local/bin

三、升级zlib
tar -xvzf zlib-1.2.11.tar.gz
cd zlib-1.2.8.tar.gz
./configure --prefix=/usr/local/redis_cluster/zlib ## 设置安装路径
make && make install
###执行安装后,需要重新刷新下,ruby的zlib库
cd /opt/ruby-2.4.4/ext/zlib
ruby extconf.rb --with-zlib-include=/usr/local/redis_cluster/zlib/include/ --with-zlib-lib=/usr/local/redis_cluster/zlib/lib/ ##执行后会生成新的Makefile文件
vim Makefile
:%s+$(top_srcdir)/include/ruby.h+../../include/ruby.h+ ##执行替换路径$(top_srcdir)/include/ruby.h替换成../../include/ruby.h
make && make install

四、升级openssl
tar fxv openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
./config -fPIC --prefix=/usr/local/redis_cluster/openssl -enable-shared
./config -t
make && make install
执行安装后,需要重新刷新下,ruby的openssl库
cd /opt/ruby-2.4.4/ext/openssl
ruby extconf.rb --with-openssl-include=/usr/local/redis_cluster/openssl/include/ --with-openssl-lib=/usr/local/redis_cluster/openssl/lib/ ##执行后会生成新的Makefile文件
vim Makefile
:%s+$(top_srcdir)/include/ruby.h+../../include/ruby.h+ ##执行替换路径$(top_srcdir)/include/ruby.h替换成../../include/ruby.h
make && make install

gem install /opt/redis-4.0.1.gem

五、创建伪集群
cd /usr/local/redis_cluster/
mkdir cluster
mkdir 16001 16002 16003 16004 16005 16006
cp redis-4.0.9/redis.conf cluster/16001
cp redis-4.0.9/redis.conf cluster/16002
cp redis-4.0.9/redis.conf cluster/16003
cp redis-4.0.9/redis.conf cluster/16004
cp redis-4.0.9/redis.conf cluster/16005
cp redis-4.0.9/redis.conf cluster/16006
vi redis.conf
##修改每个配置文件中的下面选项
port 16001 #每个配置文件的port端口号不能相同这里分别为16001.。。。16006
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

六、分别启动每个实例
cp /usr/local/redis_cluster/redis-4.0.9/src/redis-server /usr/local/bin/
cd /usr/local/redis_cluster/cluster
redis-server 16001/redis.conf
redis-server 16002/redis.conf
redis-server 16003/redis.conf
redis-server 16004/redis.conf
redis-server 16005/redis.conf
redis-server 16006/redis.conf

七、创建集群
redis-trib.rb create --replicas 1 127.0.0.1:16006 127.0.0.1:16005 127.0.0.1:16004 127.0.0.1:16003 127.0.0.1:16002 127.0.0.1:16001

报错:

解决:
1. error: jemalloc/jemalloc.h: No such file or directory解决方法
make MALLOC=libc

报错:

解决:
yum - y install tcl ##(时间同步)

报错:

解决:
升级zlib

报错:

解决:
升级openssl

redis集群搭建_超详细的更多相关文章

  1. Redis集群搭建,伪分布式集群,即一台服务器6个redis节点

    Redis集群搭建,伪分布式集群,即一台服务器6个redis节点 一.Redis Cluster(Redis集群)简介 集群搭建需要的环境 二.搭建集群 2.1Redis的安装 2.2搭建6台redi ...

  2. Redis 集群搭建详细指南

    先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...

  3. [转载] Redis集群搭建最佳实践

    转载自http://blog.csdn.net/sweetvvck/article/details/38315149?utm_source=tuicool 要搭建Redis集群,首先得考虑下面的几个问 ...

  4. Redis集群搭建最佳实践

    要搭建Redis集群.首先得考虑以下的几个问题; Redis集群搭建的目的是什么?或者说为什么要搭建Redis集群? Redis集群搭建的目的事实上也就是集群搭建的目的.全部的集群主要都是为了解决一个 ...

  5. redis集群搭建(简单简单)一台机器多redis

      redis集群搭建 在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件: 进入到解压缩后的redis文件目录(此时可以看到Makef ...

  6. 新手redis集群搭建

    redis集群搭建在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件:进入到解压缩后的redis文件目录(此时可以看到Makefile文 ...

  7. Redis学习之路(二)Redis集群搭建

    一.Redis集群搭建说明 基于三台虚拟机部署9个节点,一台虚拟机三个节点,创建出4个master.4个slave的Redis集群. Redis 集群搭建规划,由于集群至少需要6个节点(3主3从模式) ...

  8. 25.redis集群搭建笔记

    ###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码   1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...

  9. 二、redis集群搭建

    redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...

随机推荐

  1. for循环实现九九乘法表

    <!--for循环实现九九乘法表--> <table border="> <tbody> {% for x in range(1,10) %} <t ...

  2. qs.js使用方法

    https://github.com/ljharb/qs 占个空

  3. Mybatis--<![CDATA[ sql 语句 ]]>

    在mapper文件中写sql语句时,遇到特殊字符时,如:< 等,建议使用<![CDATA[ sql 语句 ]]>标记,将sql语句包裹住,不被解析器解析   在使用mybatis 时 ...

  4. Hive Error : Java heap space 解决方案

    Java heap space问题一般解决方案: 设置 set io.sort.mb=10; 排序所使用的内存数量,默认值是100M,和mapred.child.java.opts相对应,opts默认 ...

  5. numpy数组转置与轴变换

    numpy数组转置与轴变换 矩阵的转置 >>> import numpy as np >>> arr=np.arange(15).reshape((3,5)) &g ...

  6. 最长不下降/不上升子序列&&最长上升/下降子序列

    最长不下降/不上升子序列&&最长上升/下降子序列 struct cmp1{bool operator()(int a,int b){return a>b;}}; int main ...

  7. Nginx与PHP如何协同工作

    要说Nginx与PHP如何协同工作,首先得说CGI和FastCGI两个协议. CGI是Web Server与后台语言交互的协议,有了这个协议,开发者可以使用任何语言处理Web Server发来的请求, ...

  8. JavaScript应懂的概念

    目录 垃圾回收 函数作用域, 块级作用域和词法作用域 调用堆栈 原始类型 值类型和引用类型 隐式, 显式, 名义和鸭子类型 == 与 ===, typeof 与 instanceof this, ca ...

  9. MySQL on duplicate key update 批量插入并更新已存在数据

    业务上经常存在一种现象,需要批量往表中插入多条数据,但在执行过程中,很可能因为唯一键冲突,而导致批量插入失败.因此需要事先判断哪些数据是重复的,哪些是新增的.比较常用的处理方法就是找出已存在的数据,并 ...

  10. scipy.spatial.distance.cdist

    scipy.spatial.distance.cdist(XA, XB, metric='euclidean', p=2, V=None, VI=None, w=None)[source] Compu ...