redis 4.0.8 源码包安装集群
系统: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 源码包安装集群的更多相关文章
- 源码包安装(Python mysql redis)
一 源码包安装 (1)python3.6源码包安装 ./configure ------> 定制功能 make make install mysql 源码包 cmake make make i ...
- HAproxy 源码包安装
HAproxy 源码包安装 系统环境:Centos 7 x64位 服务版本:haproxy-1.7.8.tar.gz 编译工具:gcc 下载地址 HAproxy:https://pan.baidu.c ...
- Apache源码包安装和子配置文件介绍--update.2014-12-5
安装apache: 官网:http://httpd.apache.org/download.cgi#apache24 1.wget http://mirror.bit.edu.cn/apache//h ...
- Zabbix源码包安装
Zabbix源码包安装 Cenos5.3 Basic server 安装顺序 Libxml2 Libmcrypt Zlib Libpng Jpeg:需要创建目录jpeg /bin /lib / ...
- mysql 5.5源码包安装
注:由于mysql5.5的源码包安装与mysql之前的版本安装方法不同,故写一篇随笔记录.5.5的版本不再是./configure make make install 这里用到了cmake了,cmak ...
- Linux学习(二十)软件安装与卸载(三)源码包安装
一.概述 源码包安装的优点在于它自由程度比较高,可以指定目录与组件.再有,你要是能改源码也可以. 二.安装方法 步骤 1.从官网或者信任站点下载源码包 [root@localhost ~]# wget ...
- 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 ...
- MySQL5.7 二进制源码包安装
一般平时安装MySQL都是源码包安装的,但是由于它的编译需要很长的时间,所以建议安装二进制免编译包.可以到MySQL官方网站去下载,也可以到comsenz官方网站下载,还有各大镜像站下载. 下载安装包 ...
- yum更换国内源、yum下载rpm包、源码包安装 使用介绍
第5周第4次课(4月19日) 课程内容: 7.6 yum更换国内源7.7 yum下载rpm包7.8/7.9 源码包安装 7.6 yum更换国内源 当yum仓库的软件不好用时,例如很多yum源都是国外的 ...
随机推荐
- Centos7服务器中通过编译源码安装MySQL
基于在Centos7服务器上使用 yum 安装MySQL5.7到默认路径 在修改文件存储位置的时候,折腾了一番没有将成功将datadir修改为我想要的位置 我决定再尝试一下通过编译源码来自定义安装: ...
- vue的中vuex为何需要mutation更新状态,vue-router的路由的理解
); ); ); history.back(); history.forward(); // 修改历史,包括二个方法pushState.replaceState二个方法(objState,title, ...
- 开源医学图像处理平台NiftyNet介绍
18年下半年10月份左右,老师分配有关NiftyNet平台的相关学习的任务,时隔5个月,决定整理一下以前的笔记,写成相应的博客! 目录 1.NiftyNet平台简介 2.NiftyNet平台架构设计 ...
- Linux上的文件查找工具之locate与find
前言 Linux上提供了两款工具用于查找文件,一款是locate,另一款是find. locate的特点是根据已生成的数据库查找,速度较快,但是查找的是快照数据,不准确. 因此在日常使用中,为了准确性 ...
- linux 学习笔记三
用户管理篇章 useradd 建立用户 一般用法 #useradd mysql 含义 创建 mysql用户 特殊用户 > #useradd -d /usr/cjh -m cjh 含义 创建 cj ...
- 最近24小时记录:虚拟机与Wireshark 2.0
最近24小时记录:虚拟机与Wireshark 2.0 (1)虚拟机如果NAT模式而无法联网,需要检查实体机中VMware的NAT服务是否开启. (2)从Wireshark 2.0版本开始,Wire ...
- git提交待审核代码,报错没有change-id的解决方法
git提交是报错没有change-id的解决方法: 1.先仔细查看报错内容,查出是哪天提交记录缺少change-id 2.如果是最近的一条缺少,则直接执行git commit --amend &quo ...
- Nagios安装与配置
安装包获取 Nagios https://sourceforge.net/projects/nagios/files/ Nagios Plugins https://www.nagios.org/do ...
- [mongoDB]PyMongo Cursor Not Found Error
Python跑一个aggregate脚本,报错:pymongo.errors.CursorNotFound: Cursor not found, cursor id: 35411720832 搜了下原 ...
- Shell脚本笔记(一)一些零碎的基础知识
一些零碎的基础知识 一.认识Shell脚本 一)相关概念 Shell是一种命令解释器,作用是按次序执行(遇到子脚本,先执行子脚本的命令)用户输入的命令和程序. Shell脚本语言是弱类型语言,与其他脚 ...