redis集群离线安装
环境准备:
- redis-4.0.7.tar.gz redis的安装包
- Ruby环境(集群搭建需要用ruby创建, ruby环境在2.2以上。)
- rubygems-2.7.4.tgz 和 redis-3.2.2.gem (后面的是redis集群需要的ruby插件,rubygems是ruby的一个包管理工具,通过rubygems安装redis-3.2.2.gem。)
- centos7,注意安装系统的基础环境,包括zlib和openssl。
安装步骤
1、解压编译redis
cd /usr/local/
mkdir redis
将redis放到redis目录下
tar -vxf redis-4.0.7.tar.gz
make
如果报错:
说明系统没有安装gcc的环境,无法进行编译。
1.1、安装gcc(如果make不报错不做这一步)
mount /dev/cdrom /mnt
cd /mnt/Packages (有的不在Packages目录下,这个目录下都是rpm包)
rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm
安装gcc之前需要安装其他的依赖,按照提示的依赖从上到下安装:
rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm cpp-4.8.5-4.el7.x86_64.rpm glibc-devel-2.17-105.el7.x86_64.rpm libmpc-1.0.1-3.el7.x86_64.rpm glibc-headers-2.17-105.el7.x86_64.rpm kernel-headers-3.10.0-327.el7.x86_64.rpm
1.2、make报错:
解决办法:make 后面带参数
make MALLOC=libc
make install
cd src
./redis-server
看到这个界面redis单机版启动成功,验证:
另外打开一个连接,到根目录下执行
./redis-cli
ping
如果有响应,则redis单机版本安装成功。
2、配置集群环境(两台机器,6个节点,至少需要6个节点。)
2.1、创建集群目录
在redis安装目录下创建redis_cluster目录:
mkdir redis_cluster
在redis_cluster中创建子目录:
cd redis_cluster/
mkdir 7000
mkdir 7001
mkdir 7002
2.2、配置redis.conf
将redis.conf拷贝到这三个目录中去:(redis.conf在安装目录下)
cp redis.conf ./redis_cluster/7000
cp redis.conf ./redis_cluster/7001
cp redis.conf ./redis_cluster/7002
修改每个redis.conf的配置,需要修改的内容如下:
port 7000 //配置集群的端口,分别是7000、7001、7002
bind 本机的IP //这里的默认配置是127.0.0.1改为内网ip。
daemonsize yes //允许redis在后台运行
pidfile /var/run/redis_7000.pid //改成和端口一致
cluster-enabled yes // 开启集群 把注释去掉
cluster-config-file node_7000.conf //集群的配置,和端口一致
cluster-node-timeout 15000 // 请求超时,默认为15秒
appendonly yes // aof日志开启,有需要就开启,每一次写操作都会记录一条日志。
修改完成之后启动服务:
cd src/
./redis-server ../redis_cluster/7000/redis.conf
依次启动所有节点:
查看启动情况:
2.3、另一台机器执行相同的操作
另一台机器的redis端口分配为:7003、7004、7005,然后修改对应的主机ip。
3、安装ruby环境
3.1、下载、安装ruby
mkdir /usr/local/ruby
cd ruby/
把包放到改目录下
tar -vxf ruby-2.5.0.tar.gz
cd ruby-2.5.0/
./configure
make && make install
验证:
ruby -v
3.2、下载安装rubygems
cd /usr/local
mkdir rubygems
把文件放到该目录下
tar -vzxf rubygems-2.7.4.tgz
cd rubygems-2.7.4/
ruby setup.rb
报错:
解决办法:缺少了zlib包,需要下载并安装zlib
3.2.1、下载安装zlib
cd /usr/local
mkdir zlib
tar -vxf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure --prefix=/usr/local/zlib
make
make install
3.2.2、编译 ruby 中的zlib
cd /usr/local/ruby-2.5.0/ext/zlib/
ruby extconf.rb --with-zlib-include=/usr/local/zlib/include/ --with-zlib-lib=/usr/local/zlib/lib
make
又报错:
解决办法:执行完extconf.rb之后会生成一个Makefile vim Makefile
把$(top_srcdir) 换成 ../../
然后再make
make
make install
错误都解决之后,回到安装rubygems的步骤。
进入rubygems的安装目录,执行ruby setup.rb
cd /usr/local/rubygems/rubygems-2.7.4
ruby setup.rb
安装成功:
4、安装ruby-redis插件
4.1.1、下载redis-3.2.2.gem
刚刚安装rubygems就是为了安装这个插件。
把文件放到 /usr/local/redis 目录下。
gem install redis-3.2.2.gem
又报错:
解决办法:缺少OpenSSL,下载安装。
4.1.2、下载安装OpenSSL
这个问题和zlib的解决方案类似,可类比解决。
cd /usr/local
mkdir openssl
tar -xvf openssl-1.0.2n.tar.gz
./config -fPIC --prefix=/usr/local/openssl enable-shared
./config -t
make && make install
安装成功:
4.1.3、编译ruby中的openssl
cd /usr/local/ruby/ruby-2.5.0/ext/openssl/
ruby extconf.rb --with-openssl-include=/usr/local/openssl/include/ --with-openssl-lib=/usr/local/openssl/lib
make
报错:
解决办法:vim Makefile 把所有的 $(top_srcdir) 换成 ../.. 注意替换所有
make && make install
安装成功:
然后回到安装 redis-3.2.2.gem ,在redis目录下安装。
gem install redis-3.2.2.gem
安装成功:
5、启动一个集群
cd /usr/local/redis/redis-4.0.7/src
./redis-trib.rb create --replicas 1 192.168.80.230:7000 192.168.80.230:7001 192.168.80.230:7002 192.168.80.231:7003 192.168.80.231:7004 192.168.80.231:7005
启动成功:
然后测试一下集群:
随便连接一个节点:
./redis-cli -h 192.168.80.231 -p 7005 -c
连接成功之后:
set test1 'test001'
然后再连接另外一个节点:
./redis-cli -h 192.168.80.230 -p 7002 -c
get test1
集群的操作
可以使用可视化工具查看和管理redis集群。
1、创建一个集群
./redis-trib.rb create --replicas 1 192.168.80.230:7000 192.168.80.230:7001 192.168.80.230:7002 192.168.80.231:7003 192.168.80.231:7004 192.168.80.231:7005
2、连接集群
cd /usr/local/redis/redis-4.0.7/src
./redis-cli -p 7003 -c -h 192.168.80.231
参数说明: -p port 端口 -h host 主机 -c cluster 集群
连接进集群之后 输入ping , 如果响应了pong 表示连接集群成功:
连接进集群之后可以查看当前集群的信息和节点的信息
CLUSTER INFO 列出当前节点的信息
CLUSTER NODES 列出当前集群中的节点信息
前面一段很长的字符串就是节点的id。从这个命令可以知道哪些节点还活着,哪些节点已经挂了。端口后面带着fail的都是挂掉的节点。
3、关闭一个节点
退出集群连接才能关闭某一个节点:
./redis-cli -c -h 192.168.80.230 -p 7000 shutdown
这条命令的意思是关闭230机器上端口为7000的redis节点。
关闭之后可以连接集群去执行 CLUSTER NODES ,这个节点的状态已经是fail。
4、节点加入、移出集群
添加一个节点之前务必保证该节点已经启动了,如果该节点之前在创建集群时已经在集群里面了,关闭该节点然后再重新启动,该节点会自动加入集群。
./redis-server ../redis_cluster/7000/redis.conf
然后连接进集群,如果该节点之前不在集群中,连接集群输入cluster meet 命令就可以指定某个节点加入集群。
CLUSTER MEET 192.168.80.230:7000
CLUSTER forget fd72b78b1eaa430ca309bc5226d90fe67199a576
这个一长段字符串是节点的id,forget之后可以再去看节点的信息。
forget之后,如果一分钟不进行任何操作,该节点会自动加入集群。
redis集群离线安装的更多相关文章
- Redis 集群的安装
Redis 集群介绍.特性.规范等Redis 集群的安装(Redis3.0.3 + CentOS6.6_x64)要让 Redis3.0 集群正常工作至少需要 3 个 Master 节点,要想实现高可用 ...
- Apache Hadoop集群离线安装部署(三)——Hbase安装
Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS.YARN.MR)安装:http://www.cnblogs.com/pojishou/p/6366542.html Apac ...
- Apache Hadoop集群离线安装部署(二)——Spark-2.1.0 on Yarn安装
Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS.YARN.MR)安装:http://www.cnblogs.com/pojishou/p/6366542.html Apac ...
- Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS、YARN、MR)安装
虽然我已经装了个Cloudera的CDH集群(教程详见:http://www.cnblogs.com/pojishou/p/6267616.html),但实在太吃内存了,而且给定的组件版本是不可选的, ...
- Dubbo入门到精通学习笔记(十五):Redis集群的安装(Redis3+CentOS)、Redis集群的高可用测试(含Jedis客户端的使用)、Redis集群的扩展测试
文章目录 Redis集群的安装(Redis3+CentOS) 参考文档 Redis 集群介绍.特性.规范等(可看提供的参考文档+视频解说) Redis 集群的安装(Redis3.0.3 + CentO ...
- redis集群离线安装环境搭建过程
本文是继上次redis集群重新整理的离线搭建环境,关于前期的redis集群准备工作参考我另一篇博客: http://www.cnblogs.com/qlqwjy/p/8566573.html 由于集群 ...
- redis 集群模式安装
概念 Redis集群提供一种方式自动将数据分布在多个Redis节点上. 每个Redis集群中的节点都需要打开两个TCP连接.一个连接用于正常的给Client提供服务,比如6379,还有一个额外的端口( ...
- Redis集群的安装测试(伪分布模式 - 主从复制)
想跑一下Redis集群,但是没有那么多服务器,所以使用伪分布式模式,模拟一下,记录一下安装过程. 软件: redis-3.0.3.tar.gz 集群正常工作至少需要3个主节点(本示例创建6个节点,3主 ...
- Mac 下,Redis(集群)的安装和配置
1. Redis 安装步骤 1. 到github下载redis,我下载的是3.0.4 下载地址:GitHub 2. 将下载下来的redis-3.0.4.tar.gz拷贝到 /usr/local 目录下 ...
随机推荐
- Jmeter_beanshell实现字符串加密
Jmeter内置的没有MD5加密方法,所以需要写一些java代码实现加密功能,以下是具体操作: 1:用eclipse建个工程(包名.类名.方法名自己起) package com.wjika.test; ...
- Android RocooFix热修复动态加载框架介绍
RocooFix Another hotfix framework 之前的HotFix项目太过简单,也有很多同学用Nuwa遇到很多问题,作者也不再修复,所以重新构建了一套工具. Bugfix 2016 ...
- 【php】PHP环境整合
很久没装环境, 今天重新装了一次.遇到不少问题.记录下方便以后查看 修改apache的配置文件httpd.conf #apache 解析phpLoadFile "C:/phpeve/php5 ...
- freemarker报错之九
1.错误描述 五月 30, 2014 11:52:04 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
- (三十二)虚拟机linux系统中安装firefox浏览器
这几天,第二轮项目迭代进入了尾声,同时也接到了上司领导交代下来的新任务,那就是要我们学习linux系统基础的知识,包括常用命令和web应用的部署问题,于是乎安装了虚拟机和linux操作系统. 我安装的 ...
- Http头介绍:Expires,Cache-Control,Last-Modified,ETag
缓存分很多种:服务器缓存,第三方缓存,浏览器缓存等.其中浏览器缓存是代价最小的,因为浏览器缓存依赖的是客户 端,而几乎不耗费服务器端的资源. 让浏览器做缓存需要给浏览器发送指定的Http头,告诉浏览器 ...
- javascript右键菜单分析
右键菜单 思路 1.遮蔽原来的默认右键菜单 2.新建右键菜单跟随鼠标移动 3.注意边界处的位置变化 4.自定义右键内容的具体效果 具体 这样的事件涉及到有关contextmenu事件,阻止默认事件,获 ...
- 【BZOJ3994】约数个数和(莫比乌斯反演)
[BZOJ3994]约数个数和(莫比乌斯反演) 题面 求\[\sum_{i=1}^n\sum_{j=1}^md(ij)\] 多组数据\((<=50000组)\) \(n,m<=50000\ ...
- [POJ2774]Long Long Message
vjudge 一句话题意 给两个串,求最长公共子串. sol 把两个串接在一起求后缀数组.其实中间最好用一个没有出现过的字符连接起来. 判断如果\(SA[i]\)和\(SA[i-1]\)不属于同一个串 ...
- LightOJ1336 Sigma Function
题意 求和运算是一种有趣的操作,它来源于古希腊字母σ,现在我们来求一个数字的所有因子之和.例如σ(24)=1+2+3+4+6+8+12+24=60.对于小的数字求和是非常的简单,但是对于大数字求和就比 ...