centos7安装redis-4.0.1集群
试验机操作系统:CentOS Linux release 7.2.1511 (Core)
本文的目的是教会大家快速搭建redis集群,完了再深入学习。
试问如果不上手试验,看的资料再多有个毛用?
下载redis
下载网址:https://redis.io/download
写文章时最新版本为:redis-4.0.1.tar.gz

可以先下载到windows操作系统,然后拷贝到centos。
下载成功后,在centos上创建一个目录,存放我们的软件,我比较喜欢放在/soft目录下。
[root@localhost /]# mkdir /soft
然后利用WinScp工具拷贝到centos系统,放在/soft/目录下。
安装gcc
[root@localhost ~]# yum install gcc
中间有2次提示,要求输入:yes 或 y,我们按照提示来就可以。
安装pstree
[root@localhost ~]# yum install psmisc
中间有1次提示,要求输入:y。按照提示来就可以。
解压tar包
[root@localhost /]# cd /soft
[root@localhost soft]# tar zxvf redis-4.0.1.tar.gz
[root@localhost soft]# mv redis-4.0.1 /usr/local/redis
编译安装
[root@localhost soft]# cd /usr/local/redis
[root@localhost redis]# make MALLOC=libc
[root@localhost redis]# make & make install
说明:如果在make的时候不指定内存管理方式,会报错的:
zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录。
malloc是管理内存碎片的。
启动reids
[root@localhost redis]# src/redis-server redis.conf
如果成功,如下图:

然后新开终端,打开redis客户端
[root@localhost ~]# cd /usr/local/redis/
[root@localhost redis]# src/redis-cli

表示已经启动成功。
我相信单机安装有点linux基础的同学都能安装成功。
-------------------------------------------------------------------------------
Redis集群
redis集群要求最小3主3从。我这里跟其它介绍的不一样,我是模拟的真机环境。
准备6台centos7服务器,其中192.168.1.80我们刚刚装了redis,并启动成功。
因为redis集群还需要安装ruby,还需要配置集群,所以我的想法是先在一台机器上安装好之后,我们再拷贝整个系统到其它5台机器。这样我们做的重复工作就比较少了。
192.168.1.80
192.168.1.81
192.168.1.82
192.168.1.83
192.168.1.84
192.168.1.85
安装ruby
在刚安装好的redis服务器上安装ruby
因为创建集群时需要用Ruby 运行redis-trib.rb
[root@localhost redis]# yum -y install ruby ruby-devel rubygems rpm-build
[root@localhost redis]# gem install redis
这条命令有点慢,稍等片刻即可安装成功,如下图:

修改redis.conf
打开redis.conf,把下面列出来的配置项全部注释,完了拷贝下面7条配置到redis.conf文件末尾
port 6379
bind 192.168.1.80
daemonize yes
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
pidfile /var/run/redis_6379.pid
克隆5台系统
克隆5台操作系统,并且每台系统的redis.conf中的bind修改成对应的IP
我用的虚拟机,克隆前先关掉虚拟机,即192.168.1.80。不然无法克隆。
打开相关端口
说明:
redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口
集群总线端口为redis客户端连接的端口 + 10000
如redis端口为6379,则集群总线端口为16379
所以,所有服务器需要开通redis的客户端连接端口和集群总线端口
每台都要开启这两个端口
开启6379端口和16379端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=6379/tcp --permanent
[root@localhost ~]# firewall-cmd --zone=public --add-port=16379/tcp --permanent
重启防火墙
[root@localhost ~]# firewall-cmd --reload
启动redis
每台都要启动
[root@localhost ~]# cd /usr/local/redis/
[root@localhost redis]# src/redis-server redis.conf
启动集群
[root@localhost ~]# /usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.1.80:6379 192.168.1.81:6379 192.168.1.82:6379 192.168.1.83:6379 192.168.1.84:6379 192.168.1.85:6379
如下图,表示成功启动

仔细看这张图,其中
192.168.1.80
192.168.1.81
192.168.1.82
三台节点自动设置成了主节点
192.168.1.83
192.168.1.84
192.168.1.85
三台节点自动设置成了从节点,而且每个从节点对应哪个主节点都有说明。
连接redis集群
在192.168.1.80机器上进行连接
[root@localhost redis]# src/redis-cli -h 192.168.1.80 -c -p 6379
必须要加:-c参数
在192.168.1.80节点上写一条数据,看图:

然后Ctrl+c退出redis客户端,再连接到192.168.1.83节点上进行查询
[root@localhost redis]# src/redis-cli -h 192.168.1.83 -c -p 6379
看图:

看到没,跳转到192.168.1.80上了,从192.168.1.80获取的数据
好了,成功了,累死宝宝了。
参考网址
https://redis.io/download
http://os.51cto.com/art/201702/533052.htm?pc
续
如果重启服务器后,再次执行redis-trib.rb会报错如下错误:
[ERR] Node 192.168.1.80:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
解决方法:
删除dump.rdb和nodes-6379.conf这两个文件,然后重启redis服务,最后启动集群。
1次不行搞2次,2次不行搞3次。多删除几次。
centos7安装redis-4.0.1集群的更多相关文章
- CentOS7.2 安装redis 3.0.6集群
1.环境确认 a.系统版本查看 [hadoop@p168 ~]$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) b.安装依 ...
- Redis 5.0.5集群搭建
Redis 5.0.5集群搭建 一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2):s ...
- Redis 3.0 Cluster集群配置
Redis 3.0 Cluster集群配置 安装环境依赖 安装gcc:yum install gcc 安装zlib:yum install zib 安装ruby:yum install ruby 安装 ...
- 配置redis 4.0.11 集群
配置redis 4.0.11 集群 准备redis 软件和redis配置文件 启动Redis服务 /data/soft/redis/src/redis-check-aof --fix /log/red ...
- Centos7下安装redis实战(单机版以及集群)
一.背景 因项目需要,要引入redis做缓存,就在centos7下亲自安装了一遍redis,刚好趁着这个机会就来把redis的概念以及单机版和集群版redis安装步骤记录下来,在此和大家一起分享. 二 ...
- Redis 3.0.2集群搭建以及相关问题汇总
Redis3 正式支持了 cluster,是为了解决构建redis集群时的诸多不便 (1)像操作单个redis一样操作key,不用操心key在哪个节点上(2)在线动态添加.删除redis节点,不用停止 ...
- Redis 5.0.3集群部署
参考文章 https://blog.csdn.net/yyTomson/article/details/85783753 https://www.cnblogs.com/zy-303/p/102731 ...
- redis 3.0的集群部署
转载请注明出处:http://hot66hot.iteye.com/admin/blogs/2050676 最近研究redis-cluster,正好搭建了一个环境,遇到了很多坑,系统的总结下,等到re ...
- (转)redis 3.0的集群部署
一:关于redis cluster 1:redis cluster的现状 reids-cluster计划在redis3.0中推出,可以看作者antirez的声明:http://antirez.com/ ...
- Redis 3.0.5 集群的命令、使用、维护
cluster命令 CLUSTER INFO 打印集群的信息 CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息. //节点 CLUSTER MEET < ...
随机推荐
- eclipse安装阿里代码扫描插件
1.首先打开eclipse软件,点击工具栏上的Help,选择Install New Soft进行安装新的插件. 2.进入插件安装界面,点击Add,弹出插件地址填写界面,也可以直接在市场上搜索关键字al ...
- C#之WinForm基础 新建一个不可编辑的comboBox
慈心积善融学习,技术愿为有情学.善心速造多好事,前人栽树后乘凉.我今于此写经验,愿见文者得启发. 1.拉控件 2.添加可选数据 3.改变基本样式 4.效果图 C#优秀,值得学习.Winform,WPF ...
- 认识我们的太阳系(Solar System)
一.初识太阳系 如果太阳是一颗篮球,那么我们的地球是什么?? 如果太阳系里最大的行星:木星是一颗足球,那么我们的地球是什么?? 如果我们的地球是一颗排球,那么其他行星是什么?? 由此,我们可以看到,我 ...
- mysql高可用架构 -> MHA主从复制-03
GTID复制技术说明 GTID的全称为 global transaction identifier ,可以翻译为全局事务标示符,GTID在原始master上的事务提交时被创建.GTID需要在全局的主- ...
- 如何使用 JMeter 调用你的 Restful Web Service?进行简单的压力测试和自动化测试
表述性状态传输(REST)作为对基于 SOAP 和 Web 服务描述语言(WSDL)的 Web 服务的简单替代,在 Web 开发上得到了广泛的接受.能够充分证明这点的是主流 Web 2.0 服务提供商 ...
- Http PipeLining
Http PipeLining */--> div.org-src-container { font-size: 85%; font-family: monospace; } pre.src { ...
- linux下nc提交web报文问题
1.用wireshark截取访问百度首页拿到的请求数据包: GET /index.php?tn=newbdie_bd_dg&bar= HTTP/1.1 Host: www.baidu.com ...
- Linux--忘记MySQL密码的解决方法和输入mysqld_safe --skip-grant-tables &后无法进入MySQL的解决方法
https://blog.csdn.net/qq_35389417/article/details/78910974
- 【LOJ】 #2025. 「JLOI / SHOI2016」方
题解 有什么LNOI啊,最后都是JLOI罢了 一道非常--懵逼的统计题 当然是容斥,所有的方案 - 至少有一个点坏掉的正方形 + 至少有两个点坏掉的正方形 - 至少有三个点坏掉的正方形 + 至少有四个 ...
- http://localhost/ 或 http://127.0.0.1/ 报错:HTTP 404 的解决办法
一些初次接触使用 Eclipse 工具来开发 JAVA Web 工程的开发人员,可能会对 Eclipse 和 Tomcat 的绑定产生一个疑惑. 那就是 在修改了 Tomcat 的8080端口为80后 ...