`

redis学习总结2

阅读更多

redis主从复制机器

 

1. 一个master支持多个slave

2. slave可以接受其他slave的连接,作为其他slave的master,从而形成一个master-slave的多级结构

3. 复制在master端是非阻塞的,也就是master在向client复制时可处理其他client的命令,而slave在第一次同步时是阻塞的

4. 复制被利用来提供可扩展性,比如可以将slave端用作数据冗余,也可以将耗时的命令(比如sort)发往某些slave从而避免master的阻塞,另外也可以用slave做持久化,这只需要将master的配置文件中的save指令注释掉。

 

client可以在一开始时作为slave连接master,也可以在运行后发布sync命令,从而跟master建立主从关系。

 

接下来我们分别从slave和master的视角概述下redis的主从复制的运行机制。

 

如果redis作为slave运行,则全局变量server.replstate的状态有REDIS_REPL_NONE(不处于复制状态)、 REDIS_REPL_CONNECT(需要跟master建立连接)、REDIS_REPL_CONNECTED(已跟master建立连接)三种。在读入slaveof配置或者发布slaveof命令后,server.replstate取值为REDIS_REPL_CONNECT,然后在syncWithMaster跟master执行第一次同步后,取值变为REDIS_REPL_CONNECTED。

 

如果redis作为master运行,则对应某个客户端连接的变量slave.replstate的状态有REDIS_REPL_WAIT_BGSAVE_START(等待bgsave运行)、REDIS_REPL_WAIT_BGSAVE_END(bgsave已dump db,该bulk传输了)、REDIS_REPL_SEND_BULK(正在bulk传输)、REDIS_REPL_ONLINE(已完成开始的bulk传输,以后只需发送更新了)。对于slave客户端(发布sync命令),一开始slave.replstate都处于REDIS_REPL_WAIT_BGSAVE_START状态(后面详解syncCommand函数),然后在后台dump db后(backgroundSaveDoneHandler函数),处于REDIS_REPL_WAIT_BGSAVE_END 状态,然后updateSlavesWaitingBgsave会将状态置为REDIS_REPL_SEND_BULK,并设置write事件的函数 sendBulkToSlave,在sendBulkToSlave运行后,状态就变为REDIS_REPL_ONLINE了,此后master会一直调用replicationFeedSlaves给处于REDIS_REPL_ONLINE状态的slave发送新命令。





1.在master机器上执行 info命令


 
这里链接的slaves是0个,
2.然后再slave机器上执行 slaveof masterid masterport ,这是master上只有12个kv值



 
3.然后再master再用info查看结果


 
已经链接了一个slave机器

4. 在master上写入一个新的值,然后查看slave机器,几乎同时在slave机器出现


 
在slave机器同时查看


 
  • 大小: 89.4 KB
  • 大小: 40.8 KB
  • 大小: 94.8 KB
  • 大小: 5.1 KB
  • 大小: 41.2 KB
分享到:
评论

相关推荐

    redis学习总结分享,记录了redis整个学习过程总的知识点

    redis学习总结分享,记录了redis整个学习过程总的知识点

    Redis学习总结

    Redis是一个开源的高性能键值存储数据库,它支持多种类型...而随着对Redis的进一步学习,例如学习其持久化机制、事务处理、发布订阅、Lua脚本以及Redis模块系统等,可以更深入地理解和应用这一强大的数据存储解决方案。

    电脑语言Redis学习总结.pdf

    电脑语言Redis学习总结.pdf

    实用手册redis全面总结

    ### 实用手册:Redis全面总结 #### 一、Redis简介 **Redis**(Remote Dictionary Server)是一种开源的、高性能的键值(Key-Value)存储系统。它支持多种数据结构,如字符串(strings)、散列(hashes)、列表...

    redis学习相关资料

    redis学习相关资料 redis命令 redis文档总结 Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash...

    redis学习笔记(详细总结)

    Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它支持存储的 value 类型相对更多,包括 ...

    Redis个人学习总结

    Redis个人学习总结

    redis有关学习总结

    学习Redis不仅需要掌握其基本操作和数据类型,还需要理解其持久化策略、复制机制以及如何在实际项目中合理使用。通过不断的实践和探索,开发者可以充分利用Redis的特性,提升应用程序的性能和功能。

    redis学习总结.docx

    * Fork 的时候,内存中的数据被克隆了一份,大致 2 倍的膨胀性需要考虑 AOF 持久化 AOF 持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。AOF 命令以 Redis 协议追加...

    Redis学习-实战.docx

    ### Redis 学习与实战应用 #### 一、Redis 概述 Redis 是一款非常流行的非关系型(NoSQL)数据库。它不仅提供了快速的数据访问速度,还支持数据的持久化,使其成为许多应用场景下的首选。 ##### 1.1 NoSQL 数据库...

    Redis_2.2.4学习总结.ppt

    Redis_2.2.4学习总结.ppt

    redis学习笔记Redis.md

    ### Redis 学习笔记知识点概览 #### 一、Redis 概述与应用场景 ##### 1.1 NoSQL 数据库简介 - **定义**: NoSQL(Not Only SQL)泛指非关系型数据库,它们通常不使用传统的表格关系来存储数据。 - **特性**: NoSQL ...

    Redis学习实战总结.md

    Redis学习实战总结.md

    电脑语言Redis学习总结.docx

    在深入学习Redis的过程中,我们可以从NoSQL的基本概念、Redis的数据类型以及它们在实际应用中的使用场景来展开讨论。 1. **NoSql简单介绍** - NoSQL,即Not Only SQL,指的是非关系型数据库,它不采用传统的关系...

    Redis数据库学习总结

    Redis基本操作,包括五种类型数据的设置,查找,删除等命令

    Redis 2.2.4学习总结.ppt

    Redis 是一款开源的、先进的键值存储系统,常被称为数据结构服务器。它支持多种数据结构,如字符串、哈希、列表、集合和有序集合,这使得Redis在处理互联网业务中的复杂数据类型时表现出色。与传统的关系型数据库...

    手慢无!redis学习资料打开网盘即可下载.rar

    在本压缩包中,你将找到一系列的Redis学习资料,涵盖了从基础到深入的多个方面,对于初学者来说是很好的学习资源。 首先,让我们了解一下Redis的基础知识。Redis是一个开源、基于内存的数据结构存储系统,它可以将...

    Redis数据库入门学习教程与面试经验总结(附PDF下载).pdf

    Redis 入门学习教程与面试经验总结 Redis 是一种开源的、基于内存的数据结构存储系统,可以用作数据库、消息中间件、缓存等。下面是 Redis 的一些基本概念和技术要点: 1. Redis 的基本数据结构:字符串、列表、...

    redis学习心得与笔记

    总结,Redis凭借其高效、灵活的特性,在数据库缓存领域扮演着重要角色。理解并熟练掌握Redis的使用,能显著提升系统的性能和稳定性。通过不断地实践和学习,我们可以更好地利用Redis解决实际问题,优化系统架构。

Global site tag (gtag.js) - Google Analytics