redis集群搭建(非常详细,适合新手)_redis集群模式

redis集群搭建(非常详细,适合新手)_redis集群模式一、基本环境首先我们需要使用VMware配置几个虚拟机,我们需要安装VMWare然后下载自己的linux镜像文件,在虚拟机上安装linux系统,vm15和centos7下载传送门提取码:lvb5。我使用的是centos764,大致步骤可以根据其他博客将第一台虚机的系统安装成功,然后直接clone这台机器就可以了,然后需要修改ip。二、准备相关软件安装包…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

 有问题可以关注公众号提着月亮去火星

一、基本环境

首先我们需要使用VMware配置几个虚拟机,我们需要安装VMWare然后 下载自己的linux镜像文件,在虚拟机上安装linux系统,

vm15和centos7下载传送门   提取码: lvb5 。我使用的是centos7 64

redis集群搭建(非常详细,适合新手)_redis集群模式

大致步骤可以根据其他博客将第一台虚机的系统安装成功,然后直接clone这台机器就可以了,然后需要修改ip。

redis集群搭建(非常详细,适合新手)_redis集群模式

 二、准备相关软件安装包

在这里我们需要准备 redis-3.0.7.tar.gz  如果需要搭建其他集群请自行准备,上面的链接中还提供了zookeeper的文件。

三、开始

1、我们启动好虚拟机后,首先需要确保各个之间可以ping 通。

redis集群搭建(非常详细,适合新手)_redis集群模式

2、我们使用xshell工具连我自己的这几台服务器。

redis集群搭建(非常详细,适合新手)_redis集群模式

配置大致如上图,配置参数如下图。

redis集群搭建(非常详细,适合新手)_redis集群模式

3、cd /root/software 进入到我们software目录下 我们可以使用wget http://download.redis.io/releases/redis-3.0.7.tar.gz 下载 ,也可以使用xshell 提供的文件传输工具将我们的离线文件上传至software下:

redis集群搭建(非常详细,适合新手)_redis集群模式

redis集群搭建(非常详细,适合新手)_redis集群模式

目录如上。

进入到 redis-3.0.7目录下 使用如下命令

4、编译并安装

 cd redis-3.2.4

 make && make install

5、 将 redis-trib.rb 复制到 /usr/local/bin 目录下

cd src
cp redis-trib.rb /usr/local/bin/

6、创建redis节点(在/root/software/redis-3.0.7 下创建redis_cluster 目录)

mkdir redis_cluster

7、创建节点目录并将redis.conf文件复制到节点目录下

mkdir 7000 7001 7002    (创建节点目录)

cp redis.conf redis_cluster/7000
cp redis.conf redis_cluster/7001
cp redis.conf redis_cluster/7002

复制配置文件

8、修改配置文件

port  7000                                        //端口7000,7002,7003        
bind 本机ip                                       //改为其他节点机器可访问的ip 可以使用ifconfig查看一下
daemonize    yes                               //redis后台运行
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
cluster-enabled  yes                           //开启集群  
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000                //请求超时  默认15秒,可自行修改

操作之后在另外一台机器重复该操作。

9、启动各个节点

第一台机器上执行
redis-server redis_cluster/7000/redis.conf
redis-server redis_cluster/7001/redis.conf
redis-server redis_cluster/7002/redis.conf
 
另外一台机器上执行
redis-server redis_cluster/7003/redis.conf
redis-server redis_cluster/7004/redis.conf
redis-server redis_cluster/7005/redis.conf

10、检查启动情况

ps -ef | grep redis

netstat -tnlp | grep redis

redis集群搭建(非常详细,适合新手)_redis集群模式

redis集群搭建(非常详细,适合新手)_redis集群模式

注意红色部分是总线ip稍后会给我们埋坑

11、创建集群之前准备

redis-trib.rb使用ruby实现的所以在执行集群创建命令之前我们需要安装ruby。

启动命令:

redis-trib.rb  create  --replicas  1  192.168.255.128:7003   192.168.255.128:7004   192.168.255.128:7005  192.168.255.3:7000  192.168.255.3:7001  192.168.255.3:7002  

不安装的话会出现下图结果:

redis集群搭建(非常详细,适合新手)_redis集群模式

所以我们需要使用如下命令安装redis接口:

gem install redis

redis集群搭建(非常详细,适合新手)_redis集群模式

我们看到上图提示说需要redis的version 大于 2.3.0 。

这是因为我之前使用 yum -y install ruby ruby-devel rubygems rpm-build 安装的了ruby 但是安装的版本是2.0.0的。

我们可以使用RVM来对ruby进行环境的管理和切换,而RVM需要通过CRUL来进行下载。

12 安装CRUL

使用命令    yum install curl

redis集群搭建(非常详细,适合新手)_redis集群模式

 13、使用curl安装rvm

命令: curl -L get.rvm.io | bash -s stable

redis集群搭建(非常详细,适合新手)_redis集群模式

14、使用key进行RVM的安装

redis集群搭建(非常详细,适合新手)_redis集群模式

source ~/.bashrc

source ~/.bash_profile

执行上述命令使环境变量生效。

使用source让当前shell读入路径为” /usr/local/rvm/scripts/rvm “(路径可以自定义)的shell文件并依次执行文件中的所有语句,并重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录

redis集群搭建(非常详细,适合新手)_redis集群模式

15、安装需要的ruby版本

rvm install 2.4.6

redis集群搭建(非常详细,适合新手)_redis集群模式

16、检查版本,移除旧版本,check新版本

rvm use 2.4.6 #启用新版本

rvm remove 2.0.0  # 移除旧版本

ruby -v #检查当前使用的版本号

redis集群搭建(非常详细,适合新手)_redis集群模式

17、然后继续redis接口安装(gem install redis

redis集群搭建(非常详细,适合新手)_redis集群模式

18、现在可以执行redis集群启动命令

redis-trib.rb  create  --replicas  1  192.168.255.128:7003   192.168.255.128:7004   192.168.255.128:7005  192.168.255.3:7000  192.168.255.3:7001  192.168.255.3:7002  

执行命令时出现下面的错误。

[ERR] Sorry, can't connect to node 192.168.255.3:7000

这个错误的原因是我们之前配置的所有节点都没有进行对外开放所以无法链接。

firewall-cmd --zone=public --add-port=7003/tcp --permanent 
firewall-cmd --zone=public --add-port=7004/tcp --permanent 
firewall-cmd --zone=public --add-port=7005/tcp --permanent 
firewall-cmd --reload
firewall-cmd --zone=public --add-port=7000/tcp --permanent 
firewall-cmd --zone=public --add-port=7001/tcp --permanent 
firewall-cmd --zone=public --add-port=7002/tcp --permanent 
firewall-cmd --reload

在两台机器上分别执行上述命令开发端口。这里我们修改的是firewall防火墙。

此时执行会出现如下图的情况:

redis集群搭建(非常详细,适合新手)_redis集群模式

后面的点会一直点一下一直等待中。

这是因为我们只是开放了客户端节点的端口,没有开放集群总线的端口,总线端口就是客户端端口+10000,上面我们提到重点注意的

19、在iptables中开发所有端口

我们使用命令

cd /etc/sysconfig/可以使用vi iptables 先查看一下 目前只是开放了 22 端口。

iptables -A INPUT -p tcp --dport 17001 -j ACCEPT
iptables -A INPUT -p tcp --dport 17002 -j ACCEPT
iptables -A INPUT -p tcp --dport 17000 -j ACCEPT
iptables -A INPUT -p tcp --dport 7001 -j ACCEPT
iptables -A INPUT -p tcp --dport 7002 -j ACCEPT
iptables -A INPUT -p tcp --dport 7000 -j ACCEPT

service iptables save #保存文件
iptables -L -n #查看哪些端口开放了

-----------------------------------------------
iptables -A INPUT -p tcp --dport 17003 -j ACCEPT
iptables -A INPUT -p tcp --dport 17004 -j ACCEPT
iptables -A INPUT -p tcp --dport 17005 -j ACCEPT
iptables -A INPUT -p tcp --dport 7003 -j ACCEPT
iptables -A INPUT -p tcp --dport 7004 -j ACCEPT
iptables -A INPUT -p tcp --dport 7005 -j ACCEPT
service iptables save #保存文件
iptables -L -n #查看哪些端口开放了

20、此时再次执行集群启动命令

[ERR] Node xxxxx is not empty. Either the node already knows other nodes (check with CLUSTER NODES) 

会提示我们node节点不空,这是因为我们之前在执行redis集群启动命令的时候虽然一直等待,但是相关节点配置数据以及数据文件都已经生成。我们需要进入到我们的redis解压目录下删除掉图中红色的数据文件:

redis集群搭建(非常详细,适合新手)_redis集群模式

执行rm ****  然后选择y

最后我们再次执行集群启动命令成功:

redis集群搭建(非常详细,适合新手)_redis集群模式

21 测试集群效果:

在Xshell中新开一个窗口 如下图,使用7002的节点进行设值操作传递到7003主。(如图 03、04 00 都是主)

set redis cluster

redis集群搭建(非常详细,适合新手)_redis集群模式

redis集群搭建(非常详细,适合新手)_redis集群模式

接下来我们能在另外一台机器上链接05从节点,进行取值操作 get redis

redis集群搭建(非常详细,适合新手)_redis集群模式

集群功能测试成功。至此redis集群搭建测试成功。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181661.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 2022年计算机考研过线就能上的学校[通俗易懂]

    2022年计算机考研过线就能上的学校[通俗易懂]部分考研同学本科是双非计算机类专业,基础能力一般,编程能力较弱,那么对于这类考生,主要还是以求稳为主,选择一个分数略低,复试较简单的学校,上岸几率就会加大。那么2022年计算机考研过线上岸率高的院校有哪些呢?

  • Java之elasticsearch注解式开发「建议收藏」

    Java之elasticsearch注解式开发「建议收藏」最近写了一个注解式elasticsearch的工具包,ES版本更新太大,又不向下兼容,实在是焦头烂额,换个版本就得大改,索性开源出去吧,你们想改就改吧。…

  • 分别以递归调用和迭代的方法求数列_迭代算法和递归算法

    分别以递归调用和迭代的方法求数列_迭代算法和递归算法对于数列,递归和迭代的联系非常紧密。a0,a1,a2,…,an−1,ana_0,a_1,a_2,…,a_{n-1},a_na0​,a1​,a2​,…,an−1​,an​数列就是一串数字,数列来源于生活,有用的数列中蕴含着规则。要完整描述一个数列,方法有二:通项公式an=f(n)a_n=f(n)an​=f(n)递推公式其中通项公式是最一般的情况。由通项公式可以求得任意一…

  • java传递二维数组_java二维数组

    java传递二维数组_java二维数组数组–是用来存储一组相同数据类型的数据的容器;数组本身是一个引用数据类型[]数组内部存储的元素?可以是基本数据类型;int[]也可以是引用数据类型;String[]引用数据类型;StringMathScanner想要创建一个数组–里面存储好多个小数组int[],如何做?二维数组1.数组的定义/声明;int[][]x;2.数组的初始化;静态初始化;–有长度有元素int[][]x={{3,…

  • 将图片转成线稿图_图片怎么转成线稿

    将图片转成线稿图_图片怎么转成线稿1、首先找一张图片,在PS中打开,我随便找了一张自己收藏的壁纸如下图:2、打开图片之后, 我们先把图像处理成黑白。点击菜单栏:图像-调整-黑白。快捷键:Alt+Shitf+Ctrl+B

  • 几个免费的国外php空间「建议收藏」

    几个免费的国外php空间「建议收藏」2019独角兽企业重金招聘Python工程师标准>>>…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号