Redis集群搭建【超详细】

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

一、基本环境

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

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

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

 二、准备相关软件安装包

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

三、开始

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

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

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

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

目录如上。

进入到 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

注意红色部分是总线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接口:

gem install 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

 13、使用curl安装rvm

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

14、使用key进行RVM的安装

source ~/.bashrc

source ~/.bash_profile

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

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

15、安装需要的ruby版本

rvm install 2.4.6

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

rvm use 2.4.6 #启用新版本

rvm remove 2.0.0  # 移除旧版本

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

17、然后继续redis接口安装(gem install 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防火墙。

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

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

这是因为我们只是开放了客户端节点的端口,没有开放集群总线的端口,总线端口就是客户端端口+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解压目录下删除掉图中红色的数据文件:

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

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

21 测试集群效果:

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

set redis cluster

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

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

  • 30
    点赞
  • 201
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Redis群是一种分布式的Redis环境,它提供了高可用性和可扩展性。以下是Redis集群搭建详细过程: 1. 下载redis 首先,你需要下载Redis的稳定版本,并解压到你的本地目录中。你可以从Redis官网上下载最新版本的Redis。 2. 编译redis 接下来,你需要编译Redis的源代码。进入Redis源代码目录,运行以下命令: ``` make ``` 如果编译成功,你会看到如下输出: ``` make[1]: Leaving directory '/home/user/redis-4.0.9/src' REDIS_VERSION = 4.0.9 ``` 3. 创建redis集群配置文件 在Redis源代码目录中,你可以找到一个名为redis-trib.rb的Ruby脚本,它是用于创建Redis集群的。在你的本地目录中创建一个名为nodes-6379.conf的文件,用于存储Redis集群的配置信息。 在nodes-6379.conf文件中,写入以下内容: ``` port 6379 cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 5000 appendonly yes ``` 这些配置项包括: - port:Redis节点使用的端口号。 - cluster-enabled:启用Redis集群。 - cluster-config-file:指定Redis集群的配置文件。 - cluster-node-timeout:设置Redis节点之间通信的时时间。 - appendonly:启用Redis的AOF(Append-Only File)持久化模式。 4. 启动redis节点 接下来,你需要启动多个Redis节点来构建Redis集群。在你的本地目录中,使用以下命令启动三个Redis节点: ``` redis-server nodes-6379.conf redis-server nodes-6380.conf redis-server nodes-6381.conf ``` 这将启动三个Redis节点,它们将使用不同的端口号。你需要确保每个节点都已成功启动。 5. 创建redis集群 现在你已经成功启动了多个Redis节点,接下来你需要使用redis-trib.rb脚本来创建Redis集群。 使用以下命令连接到Redis集群: ``` redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 ``` 这将创建一个包含三个Redis节点的集群,其中每个主节点都有一个从节点。--replicas参数指定了每个主节点的从节点数量。 如果创建成功,你会看到如下输出: ``` >>> Creating cluster >>> Performing hash slots allocation on 3 nodes... Master[0] -> Slots 0 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 M: 53b5d0e9e3d6c8a5f2a5e2a6e1c9f7f286f2c0f3 127.0.0.1:6379 slots:[0-5460] (5461 slots) master M: 3e4f3d2b7c6b5c46d2e9b0e4a8e9e6d9f1785e1f 127.0.0.1:6380 slots:[5461-10922] (5462 slots) master M: b2cdaf2e5a7d4e0889e6c4e9af5f8f4e5d7a7c6f 127.0.0.1:6381 slots:[10923-16383] (5461 slots) master Can I set the above configuration? (type 'yes' to accept): yes ``` 这表示你已成功创建了一个Redis集群。 6. 测试redis集群 最后,你可以使用Redis客户端连接到Redis集群,并执行一些命令来测试集群的功能。 例如,使用以下命令连接到Redis集群: ``` redis-cli -c -p 6379 ``` 这将启动一个Redis客户端,并连接到Redis集群的主节点。使用以下命令将一个键值对写入到Redis集群中: ``` set mykey "hello world" ``` 然后,使用以下命令从Redis集群中读取该键值对: ``` get mykey ``` 如果一切正常,你应该会看到如下输出: ``` "hello world" ``` 这表示你已成功搭建了Redis集群,并且可以使用它来存储和检索数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值