Redis集群环境之linux搭建多机版---已完结,跟着一步一步来你就可以集群成功
上一篇踩着各种坑写了Redis集群环境之linux搭建单机版,这一篇准备就多机版集群进行搭建,主要目的一来是在上一篇的基础上进行精华提粹总结,二来是把单机版与多机版的区别进行记录。
- centos6.7 linux
- redis4.0.9
- 两个虚拟机进行集群,一个虚拟机三个节点
环境依赖:
- gcc-c++(redis依赖环境)
- rvm
- ruby2.5.1版本(必须要2.2.2以上)
- zlib(并需要配置Makefile文件)
- openssl(并需要配置Makefile文件)
- redis-4.0.1.gem文件
一、第一台虚拟机A上安装配置
1.安装单个redis服务
1)安装redis依赖的c++环境,yum install gcc-c++
运行 gcc -v可以查看gcc版本,本人安装的版本是4.4.7
2)上传redis并安装
按顺序运行如下命令:
解压 tar -zxvf redis -zxvf redis-4.0.9.tar.gz
- zxvf
-z 是配合解压.GZ的
-x 解开一个包文件
-v 显示详细信息
-f 必须,表示使用归档文件
cd redis-4.0.9
make && make install 进行安装
cd redis-4.0.9/src --------> ./redis-server启动服务
开启另一个终端 cd redis-4.0.9/src --------> ./redis-cli测试成功
2.创建节点修改配置文件
在usr/local/下创建redis-cluster目录,创建三个节点7001,7002,7003,并分别创建或拷贝redis.conf配置文件,配置如下:
配置意义如下:
port 7001 //六个节点配置文件分别是7001-7003
bind 192.168.1.109 //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访,和单机集群有区别
daemonize yes //redis后台运行
pidfile /var/run/redis_7001.pid //pidfile文件对应7001-7003
cluster-enabled yes //开启集群
cluster-config-file nodes_7001.conf //保存节点配置,自动创建,自动更新对应7001-7003
cluster-node-timeout 5000 //集群超时时间,节点超过这个时间没反应就断定是宕机
appendonly yes //存储方式,aof,将写操作记录保存到日志中
然后启动三个服务,为方便启动,可以将安装包中src目录下的redis.conf拷贝到redis-cluster目录下。
然后执行启动命令并查看如下:./redis-server 7001/redis.conf
查看命令redis启动情况命令是:ps aux | grep redis
或者查看进程命令:ps -ef | grep redis及关闭服务通过kill -9 pid 的命令,如下:
依次启动开节点服务。
3.安装依赖环境(集群需要的环境)
1)安装ruby的rvm管理软件
运行安装rvm的命令:gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275(紧接下一行数字)
462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
如下:红框是正确的安装命令
第一次执行到这里时候,忘记了执行curl -sSL https://get.rvm.io | bash -s stable,然后直接重启了,突然想起来没有执行该命令,之后
不知出了什么问题,我在此执行安装的命令
运行安装rvm的命令:gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275(紧接下一行数字)
462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
总是失败,报错大致如下(下面是网上搜的,本博主突然又安装好了,没来的及截图):
gpg: requesting key D39DC0E3 from hkp server keys.gnupg.net
gpgkeys: HTTP fetch error 6: Couldn't resolve host 'keys.gnupg.net'
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
原因不详,网上各种查原因,没能如愿解决,只是不知道为什么有一次又执行原安装rvm的命令,又突然可以了,执行后如下:只是和第一次执行成功
的结果不太一样,上次最后一行是导入:2,这次显示的是未变:2,但是不论怎样都能看出来是成功了。
然后紧接着执行curl -sSL https://get.rvm.io | bash -s stable命令,执行后如下:
执行成功。
验证是否成功,我们查看rvm版本 rvm-v(开启一个新终端或者重启虚拟机查看rvm -v是否安装成功(可以免去source 命令去载入rvm环境的命令,因为会自动载入))
重新打开一个终端,如下就是安装成功了。
2) 安装ruby合适版本的软件(2.2.2以上)
运行命令 yum install ruby,运行成功如下:
打开一个新的终端查看安装状态
虽然安装成功,但是其版本过低不是符合我们要求的2.2.2以上,所以,在网上下载ruby高版本的源码网址是:下载ruby,我下载的是2.5.1,拷贝进linux中,在local下进行安装。
解压 tar -xzvf ruby-2.5.1.tar.gz
cd ruby-2.5.1
之后配置并编译源代码执行命令
./configure 执行后:
make (这个执行的时间稍长需要三五分钟的)执行完成后如下:
sudo make install 运行完成后
上述命令完成后,再次在刚才打开的另一个终端查看
版本号已经变成了2.5.1,说明OK了。
3)安装zlib库并集成到ruby(需要配置Makefile文件)
a)安装zlib库
下载zlib-devel-1.2.3-29.el6.i686.rpm,上传linux local目录下并进行安装。
安装完成后:
b)集成到ruby中
进入解压安装的ruby目录下ext/zlib下,本博主这里是/usr/local/ruby-2.5.1/ext/zlib中,执行命令:ruby extconf.rb
修改Makefile 中zlib.o:$(top_srcdir)/include/ruby.h,将top_srcdir修改为../..或者
重要:ext/openssl/Makefile 增加 top_srcdir= ../..
这样后面的top_srcdir就轻易被替换掉了
并在该目录下执行命令:make && make install
//在操作下一步之前需要修改Makefile文件中的zlib.o: $(top_srcdir)/include/ruby.h,将$(top_srcdir)修改为../..如下
//zlib.o: ../../include/ruby.h
//这一步如果不修改,make时会爆出另外一个错误
//make:*** No rule to make target `/include/ruby.h', needed by `zlib.o'. Stop
make && make install
4)安装openssl库并集成到ruby(需要配置Makefile文件)
a)安装openssl
运行 yum openssl-devel 命令(注意命令要写正确)执行成功后:
b)在ruby中集成openssl
操作同在ruby中集成zlib基本一样,不同的是这个是进入ext/openssl目录下面运行ruby extconf.rb并修改Makefile
进入/usr/local/ruby-2.5.1/ext/zlib中,执行命令:ruby extconf.rb,成功后如下:
修改Makefile中的top_srcdir为../.. 注意红框为新增的内容
然后在该目录下 make && make install
cd /data/ruby-2.4.2
cd ext/openssl
ruby extconf.rb
//同样修改Makefile中的$(top_srcdir)为../..
make && make install
5)redis与ruby连接(gem install redis)
拷贝redis-4.0.1.gem文件到local文件夹下,执行 gem install redis命令,建立redis和ruby的连接。
至此,第一台虚拟机已经准备好了。
二、第二个虚拟机B上安装配置
1.复制安装好的虚拟机A,并修改对应的网卡
为了复用虚拟机A的所有配置,本博主采用完整克隆的方式进行克隆,克隆之后需要修改网卡的相关配置,请参考本博主的博客https://blog.csdn.net/zuixiaoyao_001/article/details/80641665
2.修改相应的节点及配置文件
修改节点名称如下:
修改相应配置文件,对应各个文件名称,网址绑定为当前网络连接网址
3.启动两台机器的各节点服务
4.关闭防火墙或者设置,开放集群端口,本博主直接将防火墙关闭
三、集群
1.复制redis集成工具 redis-trib.rb 到local/bin目录下
2.进行集群
输入‘’yes‘’
输入yes回车后出现如下界面就是集群成功了:
从上面的结果可以看出其中7001,7002和7004是主机,其他三个是从机。到此多机集群完成。
3.对集群进行测试:
打开一个终端,进入usr/local/bin 执行开启客户端并连接其中一个节点机命令如:./redis-cli -h 192.168.10.103 -c -p 7005
进行各种设置值得测试如下,已经OK.
到此,大功告成。哈哈哈
Redis集群环境之linux搭建多机版---已完结,跟着一步一步来你就可以集群成功的更多相关文章
- Redis集群环境之linux搭建单机版
Redis解决的问题是:作为一个缓存nosql数据库,能够支持高并发,关系型数据库是存储在磁盘中,通过io读写,而redis是存储在内存中,因此,能够实现高可用,他主要是解决数据库性能瓶颈而产生的. ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.6. 安装Oracle所依赖的必要包
2.6. 安装Oracle所依赖的必要包 2.6.1. 检查Oracle所依赖的必要rpm包 [root@localhost /]#rpm -q binutils compat-libstdc elf ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.4. 安装JDK
2.4.安装JDK 2.4.1.准备JDK 在百度搜索:JDK下载 2.4.2.上传JDK put E:\软件安装文件\jdk-8u11-linux-x64.rpm /home/linuxrac1/D ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.7. 配置资源与参数
2.7.配置资源与参数 2.7.1. 修改主机名称 [root@linuxrac1 ~]# cd /etc/sysconfig [root@linuxrac1 sysconfig]# vi netwo ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.5. 配置网络
2.5. 配置网络 2.5.1. 配置网络 Oracle Rac数据库涉及到公用网络和私有网络,因此要做网络划分和IP地址规划,下表列出了要安装的RAC数据库对应的IP地址.主机名以及网络连接类型: ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.3配置共享磁盘
2.3.配置共享磁盘 2.3.1.创建共享磁盘 在cmd中进入WMware Workstation 10.0 安装目录: 1.创建存储Oracle Clusterware文件 (Oracle Clu ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.2安装操作系统CentOS5.4
2.2. 安装操作系统CentOS5.4 两个虚拟机都安装,此步骤在创建虚拟机节点时: 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境所有链接: 1.资源 ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.1创建虚拟机
2.1.创建虚拟机 2.1.1. 创建虚拟机节点1 2.1.2. 创建虚拟机节点2 操作如节点1. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境所有链 ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.10.配置用户NTF服务
2.10.配置用户NTF服务 2.10.1.配置节点RAC1 1) [root@linuxrac1 sysconfig]#sed -i 's/OPTIONS/#OPTIONS/g' /etc/sysc ...
随机推荐
- MongoDB基础篇2:数据库/用户/数据集合的增删改
一.数据库操作 创建并进入数据库: 命令:use DATABASE_NAME 示例:use tms 查看所有数据库: 命令:show dbs 注意: (1)新创建的数据库在show dbs命令 ...
- Day11 - O - Coin Game HDU - 3951
题目链接 思路:考虑第一个人取的方式: 1.每次能取的次数>= n, 一次取完 first win 2.每次能取1个,n是奇数 first win 3.一次取不完,这种情况下也分2种情况 1)s ...
- 五 Mybatis一对一关联查询的两种方式(基于resultType&基于resultMap)
关联查询: 一个用户对应多个订单,一个订单只有一个用户 订单关联用户:两种方式 一:基于resultTYpe,一个与表关系一样的pojo实现 主表订单,从表用户 首先要有一个与关联查询表关系一样的po ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:将悬停的颜色应用在行或者单元格上
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- java程序中的经常出现的的异常处理课后总结
一.JDK中常见的异常情况 1.常见异常总结图 2.java中异常分类 Throwable类有两个直接子类: (1)Exception:出现的问题是可以被捕获的 (2)Error:系统错误,通常由JV ...
- 新闻网大数据实时分析可视化系统项目——3、Hadoop2.X分布式集群部署
(一)hadoop2.x版本下载及安装 Hadoop 版本选择目前主要基于三个厂商(国外)如下所示: 1.基于Apache厂商的最原始的hadoop版本, 所有发行版均基于这个版本进行改进. 2.基于 ...
- SQL常用关键字
常用SQL语句 SAP实际上提供了两种访问数据库的方式:Open SQL与Native SQL ---语句 功能 数据操作 insert 向表添加新数据行 delete 从表中删除数据行 upda ...
- 嵊州普及Day6T1
题意:有一个矩形,由正负整数构成.一个位子的魅力值为相邻的格子,若与邻格同号则减去绝对值,若异号则加上绝对值. 思路:一个格子一个格子计算即可,没什么好说的. 见代码: #include<ios ...
- leetcode142 Linked List Cycle II
""" Given a linked list, return the node where the cycle begins. If there is no cycle ...
- 八 Hibernate延迟加载&抓取策略(优化)
面试:Hibernate效率很低,如何优化? 缓存怎么弄的,语句怎么优化? 聊聊一级缓存,聊聊抓取策略和延迟加载,聊聊批量抓取 延迟加载: 一般不单独使用,和延迟加载一起使用 延迟加载:lazy(懒加 ...