系统:centos 6.9
软件版本:redis-4.0.8,rubygems-2.7.7,gcc version 4.4.7 20120313,openssl-1.1.0h,zlib-1.2.11

yum install c++ gcc

1、安装redis
tar -xf redis-4.0.8.tar.gz
cd redis-4.0.8
make
make install PREFIX=/redis-cluster

2、安装ruby和rubygems及相关组件(zlib和openssl)

安装ruby
wget https://rubygems.org/rubygems/rubygems-2.7.7.zip
unzip rubygems-2.7.7.zip
cd rubygems-2.7.7
./configure --prefix=/usr/local/ruby
make
make install

安装zlib
wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -xf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make
make install

安装openssl(1.1是当前稳定版本)
wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz
tar -xf openssl-1.1.0h.tar.gz
cd openssl-1.1.0h
./config --prefix=/usr/local/openssl #这里用的是config
# ./config -fPIC --prefix=/usr/local/openssl enable-shared
./config -t
make
make install

进入到ruby目录下安装zlib和openssl
cd /soft/ruby-2.4.4/ext/zlib #切换到ruby源码包中
ruby extconf.rb --with-zlib-include=/usr/local/zlib/include/ --with-zlib-lib=/usr/local/zlib/lib
# 会生成一个Makefile文件
# /usr/local/zlib是zlib安装目录
# 必须要指定zlib的路径
make
#出错提示 make: *** No rule to make target `/include/ruby.h', needed by `zlib.o'. Stop
#修改Makefile,把这行记录 zlib.o: $(top_srcdir)/include/ruby.h 改成:zlib.o: ../../include/ruby.h
make && make install

cd /soft/ruby-2.4.4/ext/openssl
ruby extconf.rb --with-openssl-include=/usr/local/openssl/include/ --with-openssl-lib=/usr/local/openssl/lib
make
#错误提示 make: *** No rule to make target `/include/ruby.h', needed by `ossl.o'. Stop
#打开Makefile文件,将$(top_srcdir)全部改成../..
make && make install

然后回到/soft/rubygems-2.7.7/目录下
[root@localhost rubygems-2.7.7]# ruby setup.rb
Bundler 1.16.2 installed
RubyGems 2.7.7 installed
Regenerating binstubs
Parsing documentation for rubygems-2.7.7
Installing ri documentation for rubygems-2.7.7

#安装
或者下载
gem install redis-3.3.0.gem

3、创建redis-cluster 目录
mkdir -p /redis-cluster/{redis7001,redis7006}
mkdir -p /redis-cluster/{redis7002,redis7005}
mkdir -p /redis-cluster/{redis7003,redis7004}

4、复制redis程序(可选)
cp -rf /usr/local/redis3.0/* /redis-cluster/redis7001/
cp -rf /usr/local/redis3.0/* /redis-cluster/redis7002/
cp -rf /usr/local/redis3.0/* /redis-cluster/redis7003/
cp -rf /usr/local/redis3.0/* /redis-cluster/redis7004/
cp -rf /usr/local/redis3.0/* /redis-cluster/redis7005/
cp -rf /usr/local/redis3.0/* /redis-cluster/redis7006/
# 可以独立执行redis-server,也可以公用一个redis-server bin程序文件

5、创建redis.conf脚本
在每个redis700X目录下创建redis.conf
port 7001
daemonize yes
pidfile "/redis-cluster/redis7001/redis7001.pid"
logfile "/redis-cluster/redis7001/redis7001.log"
dir "/redis-cluster/redis7001/data"
cluster-enabled yes
cluster-config-file "/redis-cluster/redis7001/7001.conf"
cluster-node-timeout 5000
appendonly yes
#bind 192.168.2.22 如果需要多台主机通信,加入这条
# cluster-config-file是集群的信息文件名,默认与redis7001.conf在同一目录,不需要指定路径
# appendonly 表示开启redis AOF方式的数据持久化

6、运行redis测试
使用脚本批量启动
cd /redis-cluster
vim startall.sh
#!/bin/bash
cd /redis-cluster
redis-server redis7001/redis.conf
redis-server redis7002/redis.conf
redis-server redis7003/redis.conf
redis-server redis7004/redis.conf
redis-server redis7005/redis.conf
redis-server redis7006/redis.conf

chmod +x startall.sh #增加执行权限
./startall.sh #打开测试
ss -tnl #查看端口
killall redis-server #测试完毕结束所有redis-server进程

7、执行redis-trib.rb启动集群
从源码包里src目录中复制redis-trib.rb到/redis-cluster下,按提示输入yes

[root@localhost redis-cluster]# ./redis-trib.rb create --replicas 1 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 127.0.0.1:7006
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7001
127.0.0.1:7002
127.0.0.1:7003
Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
Adding replica 127.0.0.1:7006 to 127.0.0.1:7003
M: 63979c7c252db530f828a0b013796eb362107601 127.0.0.1:7001
slots:0-5460 (5461 slots) master
M: 7b6e483a2060237ab770b192f3cad02448e063be 127.0.0.1:7002
slots:5461-10922 (5462 slots) master
M: 5f519d56955a80d89e4ab773c4e13a1abdfe0872 127.0.0.1:7003
slots:10923-16383 (5461 slots) master
S: 0198263589b8d89f0179886cfc898294e0cab64f 127.0.0.1:7004
replicates 63979c7c252db530f828a0b013796eb362107601
S: d0db3c39a1ce7ef9148b9b5ca43394735a5d532d 127.0.0.1:7005
replicates 7b6e483a2060237ab770b192f3cad02448e063be
S: 02b3906a4cac9d566c14f58f8818384062242f2c 127.0.0.1:7006
replicates 5f519d56955a80d89e4ab773c4e13a1abdfe0872
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:7001)
M: 63979c7c252db530f828a0b013796eb362107601 127.0.0.1:7001
slots:0-5460 (5461 slots) master
M: 7b6e483a2060237ab770b192f3cad02448e063be 127.0.0.1:7002
slots:5461-10922 (5462 slots) master
M: 5f519d56955a80d89e4ab773c4e13a1abdfe0872 127.0.0.1:7003
slots:10923-16383 (5461 slots) master
M: 0198263589b8d89f0179886cfc898294e0cab64f 127.0.0.1:7004
slots: (0 slots) master
replicates 63979c7c252db530f828a0b013796eb362107601
M: d0db3c39a1ce7ef9148b9b5ca43394735a5d532d 127.0.0.1:7005
slots: (0 slots) master
replicates 7b6e483a2060237ab770b192f3cad02448e063be
M: 02b3906a4cac9d566c14f58f8818384062242f2c 127.0.0.1:7006
slots: (0 slots) master
replicates 5f519d56955a80d89e4ab773c4e13a1abdfe0872
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

8、查看端口
[root@localhost redis-cluster]# netstat -tunl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:17001 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:17002 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:17003 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:17004 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:17005 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:17006 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:7001 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:7002 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:7003 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:7004 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:7005 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:7006 0.0.0.0:* LISTEN

9、登陆到集群测试

[root@localhost redis-cluster]# redis-cli -h 127.0.0.1 -c -p 7001 #本地可以不加-h
127.0.0.1:7001> keys *
(empty list or set)
127.0.0.1:7001> set name wajika
-> Redirected to slot [5798] located at 127.0.0.1:7002
OK
127.0.0.1:7002> set name ceshi
OK
127.0.0.1:7002> set wajika name
OK
127.0.0.1:7002> set wwwwwwwwwwaaa wajika
-> Redirected to slot [2810] located at 127.0.0.1:7001
OK
127.0.0.1:7001> 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:3976
cluster_stats_messages_received:3976
127.0.0.1:7001>

#集群部署成功

#关闭集群的方法
[root@localhost redis7001]# redis-cli -c -h 127.0.0.1 -p 7001 shutdown
#关闭集群7001节点,如果没有-h参数,默认连接127.0.0.1,如果没有-p参数,默认连接6370端口
#(所有如果用默认的,就没有-h -p)

redis 4.0.8 源码包安装集群的更多相关文章

  1. 源码包安装(Python mysql redis)

    一  源码包安装 (1)python3.6源码包安装 ./configure ------> 定制功能 make make install mysql 源码包 cmake make make i ...

  2. HAproxy 源码包安装

    HAproxy 源码包安装 系统环境:Centos 7 x64位 服务版本:haproxy-1.7.8.tar.gz 编译工具:gcc 下载地址 HAproxy:https://pan.baidu.c ...

  3. Apache源码包安装和子配置文件介绍--update.2014-12-5

    安装apache: 官网:http://httpd.apache.org/download.cgi#apache24 1.wget http://mirror.bit.edu.cn/apache//h ...

  4. Zabbix源码包安装

    Zabbix源码包安装 Cenos5.3 Basic server 安装顺序 Libxml2 Libmcrypt Zlib Libpng Jpeg:需要创建目录jpeg  /bin  /lib   / ...

  5. mysql 5.5源码包安装

    注:由于mysql5.5的源码包安装与mysql之前的版本安装方法不同,故写一篇随笔记录.5.5的版本不再是./configure make make install 这里用到了cmake了,cmak ...

  6. Linux学习(二十)软件安装与卸载(三)源码包安装

    一.概述 源码包安装的优点在于它自由程度比较高,可以指定目录与组件.再有,你要是能改源码也可以. 二.安装方法 步骤 1.从官网或者信任站点下载源码包 [root@localhost ~]# wget ...

  7. yum更换国内源 yum下载rpm包 源码包安装

    7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装 yum更换国内源 cd  /etc/yum.repo.d/ 删除源 rm -f   dvd.repo rm -f  C ...

  8. MySQL5.7 二进制源码包安装

    一般平时安装MySQL都是源码包安装的,但是由于它的编译需要很长的时间,所以建议安装二进制免编译包.可以到MySQL官方网站去下载,也可以到comsenz官方网站下载,还有各大镜像站下载. 下载安装包 ...

  9. yum更换国内源、yum下载rpm包、源码包安装 使用介绍

    第5周第4次课(4月19日) 课程内容: 7.6 yum更换国内源7.7 yum下载rpm包7.8/7.9 源码包安装 7.6 yum更换国内源 当yum仓库的软件不好用时,例如很多yum源都是国外的 ...

随机推荐

  1. Tp-validate进阶

    阶段1:基础 application/controller/v1/Banner.php <?php namespace app\api\controller\v1; use think\Cont ...

  2. hdu 3499 flight 【分层图】+【Dijkstra】

    <题目链接> 题目大意: 现在给你一些点,这些点之间存在一些有向边,每条边都有对应的边权,有一次机会能够使某条边的边权变为原来的1/2,求从起点到终点的最短距离. 解题分析: 分层图最短路 ...

  3. 学习笔记——在vue中如何配置Jest(一)

    最近在搞Jest单元测试,如何在vue中安装和使用jest我就不说了,前一篇文章简单的说了一下在使用jest时遇到的一些问题,但是我觉得并没有真正的解决的很好.后面会在学习过程中更新前面的那篇文章,加 ...

  4. Java设计模式从精通到入门五 抽象工厂方法模式

    定义 抽象工厂类为创建一组相关和相互依赖的对象提供一组接口,而无需指定一个具体的类. ​ 这里我得把工厂方法模式得定义拿出来做一下比较:定义一个创建对象的接口,由子类决定实例化哪一个类.工厂方法是一个 ...

  5. 对C#中的Close()和Dispose()的浅析

    .net中的许多类都提供了Close()和Dispose()方法,一直以来我都以为它俩是一回事,是完全等价的,在任何地方,用其一即可. 有些类说Close比说Dispose更符合用户的理解(如关闭连接 ...

  6. 解决WPF导入图片不显示的问题

    想在XAML中使用一张图片,得先将其添加到工程中, 方法是: 在项目中双击Resources.resx,选择图像,在添加资源的下拉菜单中选择添加现有文件,然后选择文件,添加图片进来后可以在Resour ...

  7. CSS选择器、样式、盒模型

    一.CSS基础选择器 # 1.*(通配选择器):html,body以及body下用于显示的标签 #html和body颜色会被改变,但是div标签不会发生改变,由于不同的选择器具有优先级 # 语法:* ...

  8. CodeForces - 1089G

    题目链接: http://codeforces.com/contest/1089/problem/G Example input Copy 3 2 0 1 0 0 0 0 0 100000000 1 ...

  9. ae:org.apache.shiro.authc.AuthenticationException: Authentication token of type [class org.apache.shiro.authc.UsernamePasswordToken] could not be authenticated by any configured realms. Please ensure

    看问题是说要保证有一个realm正确,但是之前运行就一直成功,后来就不行了.有可能是:以为自己输入了正确的用户名和密码,结果是因为用户名前面添加了空格导致了这个错误发生. 实质问题是:你输入的用户名和 ...

  10. eclipse编辑环境下导入springmvc的源码

    如果想要查看@ModelAttribute的源码,只需要,点击ctrl+鼠标左键,就会出现attach--,点击attach--,external,选择类似springframe-web-source ...