Redis 搭建高可用集群

news2025/8/2 16:08:04

729161092ab248a6aea2b17986050e60.jpg、单个redis服务搭建请参考:redis服务搭建

 

 

2、在/usr/local下创建目录redis-cluster,并在redis-cluster下创建 6379、6380、6381目录以及data、temp目录

 

# cd /usr/local

# mkdir redis-cluster

--其他文件创建类似,此处不一一写出

3、复制安装后的redis的配置文件(我的在/etc/目录下)的redis.conf 和 sentinel.conf文件到 6379、6380、6381目录中.

 

# cp /etc/redis.conf /usr/local/redis-cluster/6379

# cp /etc/redis-sentinel.conf /usr/local/redis-cluster/6379

--6380和6379类似,此处不一一写出

4、主从配置,修改 redis.conf文件 

 

主redis 6379目录:

 

复制代码

protected-mode yes

port 6379

daemonize yes

pidfile /var/run/redis_6379.pid

logfile /var/log/redis/redis_6379.log

dir /usr/local/redis-cluster/6379/data

slave-read-only yes

requirepass foo(设置访问登录密码)

#从服务设置了密码需要加上 

masterauth foo 

复制代码

从slave1 6380:

 

复制代码

protected-mode yes

port 6380

daemonize yes

pidfile /var/run/redis_6380.pid

logfile /var/log/redis/redis_6380.log

dir /usr/local/redis-cluster/6380/data 

slaveof 127.0.0.1 6379 

#若主服务设置了密码需要加上 

masterauth foo 

#从服务密码设置 

requirepass foo

复制代码

从slave2 6381:

 

复制代码

protected-mode yes

port 6381

daemonize yes

pidfile /var/run/redis_6381.pid

logfile /var/log/redis/redis_6381.log

dir /usr/local/redis-cluster/6381/data 

slaveof 127.0.0.1 6379 

#若主服务设置了密码需要加上,在设置哨兵时主从之间连接需要

masterauth foo 

#从服务密码设置 

requirepass foo

复制代码

master既可以读,也可以写,而 从服务器是只可以读,不可写的.

 

5、哨兵配置.

 

主redis 6379 sentinel.conf

 

protected-mode no

port 26379

dir "/usr/local/redis-cluster/6379/temp"

sentinel monitor redis1 127.0.0.1 6379 2

sentinel down-after-milliseconds redis1 10000

sentinel failover-timeout redis1 60000

其中redis1可自定义

 

从slave1 6380 centinel.conf

 

protected-mode no

port 26380

dir "/usr/local/redis-cluster/6380/temp"

sentinel monitor redis1 127.0.0.1 6379 2

sentinel down-after-milliseconds redis1 10000

sentinel failover-timeout redis1 60000

从slave2 7003 sentinel.conf

 

protected-mode no

port 26381

dir "/home/redis/redis-cluster/6381/temp"

sentinel monitor redis1 127.0.0.1 6381 2

sentinel down-after-milliseconds redis1 10000

sentinel failover-timeout redis1 60000

哨兵配置完成.

 

6、启动

 

启动redis

分别到6379、6380、6381的目录下执行启动命令:

 

redis-server ./redis.conf 

 

启动哨兵

 

redis-server ./sentinel.conf 

 

7、查看主从信息:

 

复制代码

127.0.0.1:6379> info replication

# Replication

role:master

connected_slaves:2

slave0:ip=127.0.0.1,port=6380,state=online,offset=420,lag=1

slave1:ip=127.0.0.1,port=6381,state=online,offset=420,lag=1

master_repl_offset:434

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:2

repl_backlog_histlen:433

复制代码

 

 

复制代码

127.0.0.1:6380> info replication

# Replication

role:slave

master_host:127.0.0.1

master_port:6379

master_link_status:up

master_last_io_seconds_ago:1

master_sync_in_progress:0

slave_repl_offset:168

slave_priority:100

slave_read_only:1

connected_slaves:0

master_repl_offset:0

repl_backlog_active:0

repl_backlog_size:1048576

repl_backlog_first_byte_offset:0

repl_backlog_histlen:0

复制代码

 

 

复制代码

127.0.0.1:6381> info replication

# Replication

role:slave

master_host:127.0.0.1

master_port:6379

master_link_status:up

master_last_io_seconds_ago:9

master_sync_in_progress:0

slave_repl_offset:406

slave_priority:100

slave_read_only:1

connected_slaves:0

master_repl_offset:0

repl_backlog_active:0

repl_backlog_size:1048576

repl_backlog_first_byte_offset:0

repl_backlog_histlen:0

复制代码

 

 

8、验证

 

127.0.0.1:6379> set test 123

OK

 

 

127.0.0.1:6380> get test

"123"

127.0.0.1:6380> set hh 6380

(error) READONLY You can't write against a read only slave.

 

 

127.0.0.1:6381> get test

"123"

127.0.0.1:6381> set xx 6381

(error) READONLY You can't write against a read only slave.

 

 

此时,我们可以把主服务或者从服务停掉进行测试来看看效果

 

停掉主服务6379:

 

复制代码

[root@VM_0_15_centos 6379]# ps -ef |grep redis

root 10690 30720 0 18:24 pts/4 00:00:00 tailf -n 200 /var/log/redis/sentinel.log

root 15650 1 0 19:01 ? 00:00:01 redis-sentinel *:26379 [sentinel]

root 16404 1 0 19:06 ? 00:00:00 redis-sentinel *:26381 [sentinel]

root 16565 1 0 19:07 ? 00:00:00 redis-sentinel *:26380 [sentinel]

root 17248 28933 0 19:12 pts/0 00:00:00 grep --color=auto redis

root 31060 1 0 16:55 ? 00:00:06 redis-server *:6379

root 31488 1 0 16:58 ? 00:00:06 redis-server *:6380

root 31563 29043 0 16:58 pts/1 00:00:00 redis-cli -c -p 6380 -a foo

root 31952 1 0 17:01 ? 00:00:06 redis-server *:6381

root 32057 29125 0 17:02 pts/2 00:00:00 redis-cli -c -p 6381 -a foo

[root@VM_0_15_centos 6379]# kill 31060

复制代码

sentinel日志:

复制代码

15650:X 18 Dec 19:13:44.834 # +sdown master mymaster 127.0.0.1 6379

16565:X 18 Dec 19:13:44.852 # +sdown master mymaster 127.0.0.1 6379

16404:X 18 Dec 19:13:44.861 # +sdown master mymaster 127.0.0.1 6379

16404:X 18 Dec 19:13:44.920 # +odown master mymaster 127.0.0.1 6379 #quorum 3/2

16404:X 18 Dec 19:13:44.920 # +new-epoch 1

16404:X 18 Dec 19:13:44.920 # +try-failover master mymaster 127.0.0.1 6379

16404:X 18 Dec 19:13:44.927 # +vote-for-leader 6d5a34396cd5912cbfe1134a70cd3e14338ebf24 1

15650:X 18 Dec 19:13:44.934 # +new-epoch 1

16565:X 18 Dec 19:13:44.934 # +new-epoch 1

16565:X 18 Dec 19:13:44.940 # +vote-for-leader

 

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

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

相关文章

[笔记]快乐的Linux命令行《二》文件系统中跳转

系列文章目录 [笔记]快乐的Linux命令行《一》LInux系统简介以及什么是shell [笔记]快乐的Linux命令行《二》文件系统中跳转 文章目录系列文章目录前言一、文件系统中跳转1.1 理解文件系统树Linux基本文件系统树目录介绍与Windows的异同1.2 当前工作目录pwd 显示当前工作目录1.…

CSS基础入门

CSS基础入门 1.官方文档 1.CSS 指的是层叠样式表* (Cascading Style Sheets) 2.地址: https://www.w3school.com.cn/css/index.asp 2.为什么需要 CSS 1.在没有 CSS 之前,我们想要修改 HTML 元素的样式需要为每个 HTML 元素单独定义样式属性,费心费力…

手把手教你如何编写一个Makefile文件

一、概念理解(彩蛋藏在某个地方) 1.1 什么是Makefile? C语言中,我们使用visual studio开发软件时候,写程序开始时候都会创建一个project项目文件,然后在文件里面编译 .h 和 .c 的文件。在Linux中&#xf…

给大家免费发布几款苹果CMSv10模板影视主题,附带教程和演示截图

苹果CMS是优秀的开源PHP建站系统,在主流建站系统中特色鲜明,以灵活、小巧、兼容性好、负载强等优点而深受许多站长的喜爱。 很多人在运营苹果cms站点都会找模板,下面博主给大家推荐几款免费并且简约的模板,其实个人认为模板这东西不需要买太贵的&#xf…

编译安装LAMP架构搭建wordpress个人博客和discuz论坛——编译安装基于 FASTCGI 模式LAMP架构多虚拟主机WEB应用

文章目录1 实验目标2 环境准备3 实现步骤3.1.1 二进制安装3.1.2为wordprss和discuz应用准备数据库和用户帐号3.2 编译安装 httpd 2.43.3 编译安装 fastcgi 方式的 php 7.43.4 修改配置 httpd 支持 php-fpm3.5 准备wordpress和discuz! 相关文件3.6 测试访问3.7 安装成功1 实验目…

MySQL高级篇知识点——其它数据库日志

目录1.其他数据库日志1.1.日志类型1.2.日志的弊端2.慢查询日志 (slow query log)3.通用查询日志 (general query log)3.1.问题场景3.2.查看当前状态3.3.启动日志3.4.查看日志3.5.停止日志3.6.删除/刷新日志4.错误日志 (error log)4.1.启动日志4.2.查看日志4.3.删除/刷新日志5.二…

Glide图片框架源码解析

一、Glide几个基本概念 Model 表示数据的来源;加载图片的时候需要告诉Glide从哪获取这个图片,可以是url类型、本地文件类型、资源ID类型。不管什么类型,Glide都将其称为Model。 Data 从数据源中获取到model之后,把它加工成原始数…

java.swing 飞机大战小游戏

上午没事刷到网上最近炒热了一些简单的小游戏和爱心代码,单身8个月了,对爱心代码不是很感冒,所以想蹭个热度,写一个飞机大站来玩玩。 首先,分析小游戏需要那些技术与怎么设计: 窗体,因为是jav…

Python如何使用PyMySQL连接数据库

1:为什么要连接数据库呢? 做接口自动化测试的时候,我们需要校验数据是否正常入库,数据是否正确,来做断言处理;有的时候需要修改数据,去执行其他场景的测试用例;有的时候需要删除数据…

DOX-HSA/HGB/FITC/Glu人血清蛋白/血红蛋白/荧光素/葡萄糖修饰阿霉素

小编今天分享给大家的科研知识是DOX-HSA/HGB/FITC/Glu人血清蛋白/血红蛋白/荧光素/葡萄糖修饰阿霉素,来看! DOX-HSA人血清蛋白偶联阿霉素相关: 采用阿霉素(Doxorubicin,DOX)与人血清白蛋白(HSA)经化学交联获得的偶联物。本品经过滤,溶于PBS…

Chapter4 利用机器学习解决分类和回归问题

目录 4.1 机器学习和神经网络基本概念 4.1.1 感知器 4.1.2 前向传播 4.1.3 反向传播 4.1.4 过拟合和欠拟合 4.2 利用神经网络解决回归问题 4.2.1 问题介绍 4.2.2 利用pytorch解析数据 4.2.2 利用pytorch定义网络结构 4.2.3 开始训练 4.2.4 将模型进行保存 4.3 利用p…

云中马在A股上市:总市值约为40亿元,叶福忠为实际控制人

11月18日,浙江云中马股份有限公司(下称“云中马”,SH:603130)在上海证券交易所主板上市。本次上市,云中马的发行价为19.72元/股,发行数量为3500万股,募资总额约为6.90亿元,募资金额约…

码农必备?清华大学开源了一款写代码神器。。。

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store 提升程序员编码效率,是一个经久不衰的话题,从最初用纯文本编辑器到后来代码自动补全,再到后来基于AI智能补全代码,开发者效率的确在不断提升。 关于新工…

这就是程序员眼中的函数吗?(一)

小叮当的任意门1. 函数是什么?2. C语言中的函数分类1. 库函数2. 自定义函数3. 函数的参数1. 实际参数(实参)2. 形式参数(形参)4. 函数的调用1. 传值调用2. 传址调用练习1. 写一个函数可以判断一个数是不是素数三级标题…

5分钟实现「视频检索」:基于内容理解,无需任何标签

Notebook 教程:text-video retrieval 「视频检索」任务就是输入一段文本,检索出最符合文本描述的视频。随着各类视频平台的兴起和火爆,网络上视频的数量呈现井喷式增长,「视频检索」成为人们高效查找视频的一项新需求。传统的视频…

Matlab点云处理及可视化第1期—基于KD树的邻域点搜索(柱状邻域、球状邻域及KNN)

目录 1 概述 2 代码实现 3 可视化验证 数据及完整代码获取方式: 观前提示:本文文字内容请勿直接用于论文写作,否则后果自负。 特别提示:《Matlab点云处理及可视化》系列文章旨在为初入点云处理领域的朋友提供一份较为权威、可…

MR直播(混合现实直播)做一场高品质企业培训

阿酷TONY / 2022-11-18 / 长沙 MR,是英文Mixed Reality两个单词的缩写,中文翻译为混合现实。 MR混合现实直播技术是通过在现实环境中引入虚拟场景信息,增强用户体验的真实感,具有真实性、实时互动性等特点。 MR直播解决方案是深…

基于springboot农产品交易平台的设计与实现

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于特色农产品电商平台 当然也不能排除在外,随着网络技术的不断成熟,带动了特色农产品电商平台,它彻底…

软件需求分析——需求的理论基础

如果有兴趣了解更多相关内容,可以来我的个人网站看看:瞳孔空间 一:需求的涵义 研究对象:软件加强型系统中的软件 软件加强型系统:泛指由计算机技术支持的互相联系着的一组人类活动组成的系统。与物理设备和人类社会…

linux网络协议栈源码分析 - 传输层(TCP的输出)

1、TCP write系统调用(tcp_sendmsg) 1.1、write系统调用 socket的write系统调用栈: write最终调用tcp_sendmsg发送消息。 1.2、tcp_sendmsg报文分段 tcp_sendmsg主要是对用户的消息按MSS进行分段、添加到发送队列并将用户数据拷贝到分段里面,根据相关判断设置PSH标…