linux虚拟机环境快速搭建redis5.x版本的主从集群总结

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 我在阿里云服务器上曾参与过公司redis集群的搭建,但时间久了,都快忘记当时的搭建过程了,故而决定在虚拟机centOS 7的环境,自行搭建一套redis5.x版本的集群,该版本集群的搭建比较方便,不用再像以前版本那样还得再搞一个 Ruby,5.x版本可直接使用 redis-cli的方式来构建集群。

文/朱季谦

我在阿里云服务器上曾参与过公司redis集群的搭建,但时间久了,都快忘记当时的搭建过程了,故而决定在虚拟机centOS 7的环境,自行搭建一套redis5.x版本的集群,该版本集群的搭建比较方便,不用再像以前版本那样还得再搞一个 Ruby,5.x版本可直接使用 redis-cli的方式来构建集群。

提前准备六台虚拟机:

192.168.200.111:6379

192.168.200.112:6379

192.168.200.113:6379

192.168.200.117:6379

192.168.200.115:6379

192.168.200.116:6379

搭建之前,先ping一下各虚拟机的网络情况,看是否可以正常ping通,若正常,则进行下一步操作。


一、将redis-5.0.8.tar.gz安装包离线拷贝到/app目录底下

我使用的是5.0.8版本的redis,已上传到网盘,可直接根据下边网盘地址进行下载——

链接:https://pan.baidu.com/s/1HUw_gAtyE7E01w0fVVmgeQ

提取码:2r6j

下载完成后,上传redis-5.0.8.tar.gz至/app目录后,按步骤执行以下操作——

[root@192 app]# tar -zxvf redis-5.0.8.tar.gz 
[root@192 app]# cd redis-5.0.8
[root@192 redis-5.0.8]# make
[root@192 redis-5.0.8]# make install PREFIX=/usr/local/redis

正常执行到最后一步,会打印以下的信息,这时,redis相关的操作脚本,都会自动放入到/usr/local/redis目录底下。


二、将redis.conf文件复制到/usr/local/redis/bin目录下

在解压完成的redis-5.0.8目录下,可以找到一个redis.conf文件,将其通过以下命令拷贝到/usr/local/redis/bin/目录,该文件是配置redis的最重要文件。

[root@192 redis-5.0.8]# cp redis.conf /usr/local/redis/bin/

复制到/usr/local/redis/bin/目录后,就可以修改redis.conf的文件配置了,我主要是修改了以下几个参数,用于实现redis集群节点作用——

port 6379   #端口
cluster-enabled yes #开启集群模式
cluster-config-file nodes.conf #节点信息文件
cluster-node-timeout 15000 #设置节点连接超时时间
appendonly yes #开启AOF模式
protected-mode no #非保护模式
bind 192.168.200.111 #绑定本机ip

**以上步骤分别在六台机器上执行,后续我会出一期脚本方式的搭建,可直接使用脚本在各台机器上自动完成操作。

**


三、启动集群模式

首先,先在每一台机器上启动redis服务:

-rwxr-xr-x. 1 root root 4367616 8月  17 11:24 redis-benchmark
-rwxr-xr-x. 1 root root 8127048 8月  17 11:24 redis-check-aof
-rwxr-xr-x. 1 root root 8127048 8月  17 11:24 redis-check-rdb
-rwxr-xr-x. 1 root root 4808704 8月  17 11:24 redis-cli
-rw-r--r--. 1 root root   61793 8月  17 11:24 redis.conf
lrwxrwxrwx. 1 root root      12 8月  17 11:24 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 8127048 8月  17 11:24 redis-server
[root@192 bin]# ./redis-server redis.conf

检查是否已经正常启动:

[root@192 bin]# ps -ef|grep redis
root       5592      1  0 11:25 ?        00:00:00 ./redis-server 192.168.200.111:6379 [cluster]
root       5597   1215  0 11:25 pts/0    00:00:00 grep --color=auto redis

其中,有[cluster]后缀的,则显示此节点已经成功启动,并能作为一个集群节点生效。

接下来,选择其中一台机器,进入到其/usr/local/redis/bin目录下,直接使用./redis-cli --cluster create 192.168.200.111:6379 192.168.200.112:6379 192.168.200.113:6379 192.168.200.117:6379 192.168.200.115:6379 192.168.200.116:6379 --cluster-replicas 1 就可以开启各节点的集群模式,到这里,就会发现,5.x版本以上的redis集群开始,是不是很方便,直接一键开启。

[root@192 ~]# cd /usr/local/redis/bin
[root@192 bin]# ./redis-cli --cluster create 192.168.200.111:6379 192.168.200.112:6379 192.168.200.113:6379 192.168.200.117:6379 192.168.200.115:6379 192.168.200.116:6379 --cluster-replicas 1

执行之后,可以看到打印信息当中,自动将111,112,113三台机器作为主机,即集群的节点,117,115,116三台则作为对应主机的从机,也就是主从模式。

这里输入yes回车——

正常启动后,就可以可启动成功的打印信息了——

接下来,我们验证一下集群,先连接到集群当中——这里有几个参数简单介绍下,-h代表客户端连接指定ip地址是192.168.200.111,-p代表指定端口是6379,-c即cluster缩写,表示以集群模式来进行连接。

[root@192 bin]# redis-cli -h 192.168.200.111 -p 6379 -c

连接成功后,我们可以查看一下集群节点信息:

192.168.200.111:6379> cluster nodes

这里,可以看到集群当中主从节点的信息。

到这一步,就初步完成了虚拟机环境上搭建5.x版本的redis集群了,接下来,就可以在该集群上进行更多的学习。

目录
相关文章
|
13天前
|
存储 NoSQL Redis
Redis 新版本引入多线程的利弊分析
【10月更文挑战第16天】Redis 新版本引入多线程是一个具有挑战性和机遇的改变。虽然多线程带来了一些潜在的问题和挑战,但也为 Redis 提供了进一步提升性能和扩展能力的可能性。在实际应用中,我们需要根据具体的需求和场景,综合评估多线程的利弊,谨慎地选择和使用 Redis 的新版本。同时,Redis 开发者也需要不断努力,优化和完善多线程机制,以提供更加稳定、高效和可靠的 Redis 服务。
27 1
|
3月前
|
监控 NoSQL Redis
看完这篇就能弄懂Redis的集群的原理了
看完这篇就能弄懂Redis的集群的原理了
102 0
|
6天前
|
网络协议 Linux 编译器
一步一步教你:如何在 Linux 上用 QEMU 搭建虚拟机
一步一步教你:如何在 Linux 上用 QEMU 搭建虚拟机
|
12天前
|
Ubuntu Linux 虚拟化
Linux虚拟机网络配置
【10月更文挑战第25天】在 Linux 虚拟机中,网络配置是实现虚拟机与外部网络通信的关键步骤。本文介绍了四种常见的网络配置方式:桥接模式、NAT 模式、仅主机模式和自定义网络模式,每种模式都详细说明了其原理和配置步骤。通过这些配置,用户可以根据实际需求选择合适的网络模式,确保虚拟机能够顺利地进行网络通信。
|
24天前
|
Linux 网络安全
Linux虚拟机与主机和Xshell的连接问题解决
Linux虚拟机与主机和Xshell的连接问题解决
59 1
|
2月前
|
NoSQL 网络协议 Unix
1)Redis 属于单线程还是多线程?不同版本之间有什么区别?
1)Redis 属于单线程还是多线程?不同版本之间有什么区别?
52 1
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
2月前
|
安全 Unix Linux
Xshell和Xftp的下载和在linux虚拟机中的使用
这篇文章介绍了Xshell和Xftp的下载、安装和使用方法,包括如何在Linux虚拟机中使用它们进行远程连接和文件传输。
Xshell和Xftp的下载和在linux虚拟机中的使用
|
3月前
|
机器学习/深度学习 Ubuntu Linux
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
|
3月前
|
存储 网络协议 搜索推荐
在Linux中,如何配置和管理虚拟机的网络和存储?
在Linux中,如何配置和管理虚拟机的网络和存储?