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

 

原创/朱季谦

我在阿里云服务器上曾参与过公司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,已上传到网盘,可直接根据下边网盘地址进行下载——

链接:百度网盘 请输入提取码
提取码: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目录底下。

image

二、将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/

image

复制到/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回车——

image

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

image

接下来,我们验证一下集群,先连接到集群当中——这里有几个参数简单介绍下,-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

image

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/603325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现电子邮件自动化的实用技巧与指南

如何实现电子邮件自动化?一般可以通过规则和过滤器、自动回复、定时发送、快捷键和模板、团队邮箱等方法来实现。 一、什么是电子邮件自动化 电子邮件自动化是一种根据特定条件在适当时机发送正确信息的过程。这些条件可以是时间表、触发器或在您的电子邮件自动化工…

AVL树介绍以及代码实现

二叉搜索树的查找和删除虽然最优情况下能够做到 O(logN) 的级别,但是在一些特殊情况下,它的查找速度只能到达 O(N)级别,比如数据按顺序插入,那么就一定是一棵单边树。 为了针对这种情况,俄罗斯的两位数学家&#xff1a…

android 倒计时控件

效果:(可不设置 之前、之后文字) /*** 倒计时秒数** desc : 时分秒倒计时view* * 布局里引用后,* private fun testMethod(){* binding.test.setCDownStarText("之前的文字")* binding.test.setCDo…

在数据库造数据发现的bug也是bug

上个月,我和开发小哥讨论过一个问题,开发小哥专门提醒我,页面上新增功能尽可能在前端造一些数据去测试,如果直接从数据库里插入的数据,定位问题还是有些说不清楚。 讨论的过程和细节就是以下的对话内容: …

【Sublime Text】| 02——常用插件安装及配置

系列文章目录 【Sublime Text】| 01——下载软件安装并注册 【Sublime Text】| 02——常用插件安装及配置 失败了也挺可爱,成功了就超帅。 文章目录 1. 汉化2. 更换颜色主题3. 更改编码插件—ConvertToUTF84. 对齐插件—Alignment5. 括号高亮插件—BracketHighligh…

网络嗅探器的设计与实现(2024)-转载

1.题目描述 参照 raw socket 编程例子,设计一个可以监视网络的状态、数据流动情况以及网络上传输 的信息的网络嗅探器。 2.运行结果 3.导入程序需要的库 请参考下面链接: 导入WinPcap到Clion (2024)-CSDN博客 4.参考代码 #define HAVE_REMOTE #define LINE_LEN …

XSKY SDS 产品率先获得 OceanBase V4 新版本认证

近日,北京奥星贝斯科技有限公司(简称:OceanBase)与北京星辰天合科技股份有限公司(简称:XSKY 星辰天合)顺利完成产品兼容性认证。 XSKY 的高性能全闪存储以及混闪存储,与 OceanBase V…

ELement UI时间控件el-date-picker误差8小时解决办法

一、问题描述&#xff1a; 在项目中引用了elementui中的date-picker组件&#xff0c;选中的时间跟实际相差八小时&#xff0c;且格式不是自己想要的格式 <el-date-pickertype"date"placeholder"选择日期"format"yyyy/M/d"v-model"form…

Java面试之集合篇

前言 本篇主要总结JAVA面试中关于集合相关的高频面试题。本篇的面试题基于网络整理以及自己的总结编辑。在不断的完善补充哦。欢迎小伙伴们在评论区发表留言哦&#xff01; 1、基础 1.1、Java 集合框架有哪些&#xff1f; Java 集合框架&#xff0c;大家可以看看 《Java 集…

报错处理:java.io.IOException: Could not find resource mybatis-config.xml

运行mybatis文件时出现了以下的情况 java.io.IOException: Could not find resource mybatis-config.xmlat org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:114)at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:100)at org.apach…

对html骨架的详细解释

html的骨架结构 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head…

BRF文件数据结构

一.BRF-文件头数据结构 type_mesh "mesh" 网格 type_material "material" 材质struct brf_header{int type_length; //4个字节, type字符串对应长度char* type_name; //根据type_length获取int type_content_num; //4个字节,对应类型所含个数,例如含有模…

1982-2022年GIMMS 标准化差异植被指数

GIMMS 标准化差异植被指数 1982-2022 PKU GIMMS 归一化植被指数数据集&#xff08;PKU GIMMS NDVI&#xff0c;版本 1.2&#xff09;提供了从 1982 年到 2022 年以半个月为间隔、分辨率为 1/12 的一致的全球 NDVI 数据。其主要目标是解决现有领域中普遍存在的关键不确定性。全…

12.27

吓死了&#xff0c;WPS的协作模式&#xff0c;以为白做了&#xff0c;吓得额头冒冷汗

对于网关的理解-Gateway

因为在使用微服务的时候&#xff0c;会有多端请求。会产生以下问题&#xff1a; 1.客户端需要记住每一个微服务的url 2.主机端口也会直接暴露 3.每一个微服务都需要认证 4.存在跨域问题 所以网关可以解决统一访问、隐藏真实的服务器地址、网关进行统一认证、解决跨域问题、…

【算法笔记】状态机dp

状态机dp概述 当一个事件涉及的过程的考虑并且方案数的考虑比较繁琐时&#xff0c;我们可以尝试用状态机的思想去考虑这个问题&#xff0c;将这个问题简化&#xff0c;就是去考虑一个对象他所具有的几种状态。 状态机主要考虑一下两个方面&#xff1a;状态和转移 状态其实也…

力扣151. 反转字符串中的单词

双指针 常规思路&#xff1a; 按照空格split 字符串&#xff0c;得到字符串单词数组&#xff1b;然后每个单词进行反转&#xff08;reverse&#xff09;&#xff1b;然后使用空格将反转后的单词拼接&#xff08;join&#xff09;起来&#xff1b;C 可以在字符串上直接操作&…

React 实现拖放功能

介绍 本篇文章将会使用react实现简单拖放功能。 样例 布局侧边栏拖放 LayoutResize.js import React, {useState} from "react"; import { Button } from "antd"; import "./LayoutResize.css";export const LayoutResize () > {const […

LVGL的List控件的触摸按键和实体按键的处理

在LVGL的List控件使用过程中&#xff0c;虽然通过触摸按键选择item&#xff0c;但是有些场景需要实体按键选取item&#xff0c;但是LVGL 的V8.3中没有像Emwin那样有函数选择list item的函数。LVGL中List引入了Group的概念&#xff0c;把列表项都添加到同一个group中。然后通过更…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷4

某企业根据自身业务需求&#xff0c;实施数字化转型&#xff0c;规划和建设数字化平台&#xff0c;平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”&#xff0c;拟采用开源OpenStack搭建企业内部私有云平台&#xff0c;开源Kubernetes搭建云原生服务平台&#xff0c;选…