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集群搭建测试成功。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 反掩码的作用是什么?通配符掩码的作用是什么?—Vecloud[通俗易懂]

    反掩码的作用是什么?通配符掩码的作用是什么?—Vecloud[通俗易懂]反掩码即路由器使用的通配符掩码与源或目标地址一起来分辨匹配的地址范围,跟子网掩码刚好相反。它像子网掩码告诉路由器IP地址的哪一位属于网络号一样,通配符掩码告诉路由器为了判断出匹配,它需要检查IP地址中的多少位。这个地址掩码对使我们可以只使用两个32位的号码来确定IP地址的范围。这是十分方便的,因为如果没有掩码的话,你不得不对每个匹配的IP客户地址加入一个单独的访问列表语句。这将造成很多额外的输入和路由器大量额外的处理过程。所以地址掩码对相当有用。在子网掩码中,将掩码的一位设成1表示IP地址对应的位.

    2022年7月19日
    20
  • 【动态规划】01背包问题(通俗易懂,超基础讲解)[通俗易懂]

    【动态规划】01背包问题(通俗易懂,超基础讲解)[通俗易懂]问题描述有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?为方便讲解和理解,下面讲述的例子均先用具体的数字代入,即:eg:number=4,capacity=8i(物品编号) 1 2 3 4 w(体积) 2 3 4 5 v(价值) 3 4 5 6 总…

    2022年7月26日
    9
  • sigprocmask sigaction

    sigprocmask sigaction sigprocmask:用于随时添加信号屏蔽字;sigaction :signal增强版本,当处理信号时,可以随意添加信号屏蔽字sigset_tnewmask,oldmask,pendmask;signal(SIGINT,sig_handler);sigemptyset(&newmask);sigaddset(&…

    2022年5月26日
    39
  • 可视化篇:效果图_可视化建模

    可视化篇:效果图_可视化建模写在最前在做可视化的时候,理解自己做的每个图形展示的意义,是多么的至关重要每做一张图的时候,我都在想,该如何阐述图形背后的故事下面是一些效果图,每张图,都只为更好地反应数据背后的那段故事。由于图片最大只能2M,所以调小后有的看起来不是很舒服,多多见谅所使用的工具主要是:R语言,Echart,D3.js如何实现在别的文章有详细说明。2016年的广州春运广州南站载客

    2022年8月31日
    3
  • Tips–解决BeatsX开机白灯闪三下无法连接问题(附拆机教程)[通俗易懂]

    Tips–解决BeatsX开机白灯闪三下无法连接问题(附拆机教程)[通俗易懂]解决BeatsX开机白灯闪三下无法连接问题(附拆机教程)问题描述解决方法BeatsX拆机教程问题描述BeatsX耳机用了有一年左右,但是突然有一天,开机的时候只有白灯闪三下,然后连接不上蓝牙,即使重启也没有办法。这个问题困扰了很久,我一度以为是因为里面的固件出了问题,然后在官网刷固件的时候发现固件是最新的无法在刷了,也因此意外收获了修改beatsX名字的方法,哈哈,算是因祸得福吧。最后通过咨…

    2022年6月27日
    124
  • tle代码

    tle代码include iostream include string include cstring usingnamespa typedeflongl intn k 1 p 0 maxn strings intmain cin gt gt n cin gt amp cstring string iostream

    2025年6月23日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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