我的编程空间,编程开发者的网络收藏夹
学习永远不晚

实现redis高可用机制的方法有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

实现redis高可用机制的方法有哪些

实现redis高可用机制的方法有哪些?针对这个问题,这篇文章给出了相对应的分析和解答,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。

保证redis高可用机制需要redis主从复制、redis持久化机制、哨兵机制、keepalived等的支持。

主从复制的作用:数据备份、读写分离、分布式集群、实现高可用、宕机容错机制等。          

redis主从复制原理

首先主从复制需要分为两个角色:master(主) 和 slave(从) ,注意:redis里面只支持一个主,不像Mysql、Nginx主从复制可以多主多从。

1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而从数据库一般是只读的,并接收主数据库同步过来的数据,一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库。

2、通过redis的复制功能可以很好的实现数据库的读写分离,提高服务器的负载能力。主数据库主要进行写操作,而从数据库负责读操作。

主从复制全量同步的过程:见下图

实现redis高可用机制的方法有哪些

Redis主从复制可以根据是否是全量分为全量同步和增量同步

Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。

全量同步过程:

1:当一个从数据库启动时,会向主数据库发送sync命令,

2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并用缓存区记录后续的所有写操作

3:当主服务器快照保存完成后,redis会将快照文件发送给从数据库。

4:从数据库收到快照文件后,会丢弃所有旧数据,载入收到的快照。

5:   主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令。

6:   从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令。

增量同步的过程:

Redis增量复制是指slave初始化后开始正常工作时主服务器发生的写操作同步到从服务器的过程。

增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。

Redis主从复制全量与增量同步的选择:

主从服务器刚刚连接的时候,会先进行全量同步;全同步结束后,再进行增量同步。当然,如果有需要,slave 在任何时候都可以发起全量同步。redis 策略是,无论如何,首先会尝试进行增量同步,如不成功,要求从机进行全量同步。

redis主从复制如何配置呢?

修改从服务器redis/conf中的redis.conf文件
 
修改IP地址和端口号为主服务器的IP和端口
slaveof 10.211.55.9 6379 
 
masterauth 123456--- 如果主redis服务器配置了密码,则需要配置

只需要配置从服务器的redis.conf即可,主服务器无需配置。验证是否成功可以通过1、先登录主服务器redis-cli客户端,输入info。

若role显示master、slave0能正常显示从服务器的ip,则表示主从服务配置成功,主从复制配置成功了,也同时实现了读写分离,不信?你看看试试看你的从服务器还能不能写入操作了?

答案是:不能。从服务器只有读操作!

关于实现redis高可用机制的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

实现redis高可用机制的方法有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

redis锁机制的实现方式有哪些

Redis锁的实现方式主要有以下几种:1. 设置过期时间:通过设置一个键值对,并给定一个过期时间,利用Redis的SETNX(SET if Not eXists)命令,只有当键不存在时才能设置成功。这样可以实现一个简单的分布式锁,但存在死锁
2023-08-12

Redis限流的实现方法有哪些

本篇内容主要讲解“Redis限流的实现方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis限流的实现方法有哪些”吧!一、简单的限流基本原理当系统处理能力有限,如何组织计划外的请求对
2023-06-22

有哪些提高网站可用性的方法

这篇文章主要讲解了“有哪些提高网站可用性的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些提高网站可用性的方法”吧!  通常,网站有三种类型:  第一种网站有杰出的创意和设计。这样的
2023-06-10

Redis实现分布式锁的方法有哪些

今天小编给大家分享一下Redis实现分布式锁的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 单机数据一致性单
2023-07-02

redis的常用方法有哪些

Redis的常用方法有:1. SET:设置指定 key 的值。2. GET:获取指定 key 的值。3. DEL:删除指定 key。4. EXISTS:判断指定 key 是否存在。5. KEYS:获取所有符合给定模式的 key。6. TTL
2023-09-06

Redis搭建主从复制实现高可用(如何保证 Redis 主从复制的高可用性?)

高可用 HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。
Redis搭建主从复制实现高可用(如何保证 Redis 主从复制的高可用性?)
2024-11-01

redis实现限流的方式有哪些

Redis实现限流的方式有以下几种:1. 固定窗口算法:对请求进行计数,在固定的时间窗口内,如果请求数超过阈值,则拒绝请求。2. 滑动窗口算法:将时间窗口划分为固定的时间段,在每个时间段内,记录请求数量,并计算总请求数。如果总请求数超过阈值
2023-09-14

实用的redis可视化工具有哪些

以下是一些实用的Redis可视化工具:1. Redis Desktop Manager:这是一个跨平台的Redis数据管理工具,提供了直观的图形用户界面,可以浏览、编辑和管理Redis数据。2. Redisson:这是一个基于Java的Re
2023-09-21

laravel的redis使用方法有哪些

这篇文章主要介绍“laravel的redis使用方法有哪些”,在日常操作中,相信很多人在laravel的redis使用方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”laravel的redis使用方法
2023-07-04

现在业内常用的MySQL高可用方案有哪些?

目录 如何将excel数据导入MySQL表中? 用xtrabackup跑mysql物理备份,建议授予哪些权限? select里用rand(),怎么优化效率? 现在业内常用的MySQL高可用方案有哪些? 什么时候MySQL的索引"失效"不可用? M
现在业内常用的MySQL高可用方案有哪些?
2017-04-30

linux shell实现随机数的方法有哪些

这篇文章主要介绍“linux shell实现随机数的方法有哪些”,在日常操作中,相信很多人在linux shell实现随机数的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux shell实现
2023-06-09

redis乐观锁实现的方式有哪些

在Redis中实现乐观锁的方式有以下几种:1. 使用WATCH命令:使用WATCH命令可以监视一个或多个键,当这些键的值发生变化时,事务将会被打断。在使用乐观锁时,可以先使用WATCH命令来监视需要加锁的键,然后再执行事务操作。如果事务执行
2023-08-12

Golang中有哪些方法可以实现多态?

Golang中多态的实现方式有哪些?多态是面向对象编程中的一个重要概念,指的是同样的方法可以被不同的对象调用,而根据对象的不同,方法的具体实现会有所不同。在Golang中,虽然没有像其他面向对象语言那样的继承机制,但是可以通过接口和结构体的
Golang中有哪些方法可以实现多态?
2023-12-29

利用Java实现生成随机数的方法有哪些

利用Java实现生成随机数的方法有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、通过System.currentTimeMillis()来获取一个当前时间毫秒数的lon
2023-05-31

编程热搜

目录