search
HomeDatabaseRedisIntroduction to Redis master-slave replication and detailed explanation of its principles

Introduction to Redis master-slave replication and detailed explanation of its principles

#redis is a key-value storage system. Similar to Memcached, it supports relatively more stored value types, including string (string), list (linked list), set (set), zset (sorted set - ordered set) and hash (hash type). These data types all support push/pop, add/remove, intersection, union, difference, and richer operations, and these operations are all atomic. On this basis, redis supports various different ways of sorting. Like memcached, data is cached in memory to ensure efficiency. The difference is that redis will periodically write updated data to disk or write modification operations to additional record files, and on this basis, master-slave (master-slave) synchronization is achieved.

Overview

In existing enterprises, 80% of companies mostly use redis stand-alone service. In actual scenarios, a single node redis is prone to risks.

Facing problems

1. Machine failure. We deploy to a Redis server. When a machine failure occurs, we need to migrate to another server and ensure that the data is synchronized. Data is the most important thing. If you don't care, you basically won't use Redis. 2. Capacity bottleneck. When we need to expand Redis memory, from 16G memory to 64G, a single machine will definitely not be able to satisfy it. Of course, you can buy a new 128G machine.

Solution

To achieve greater storage capacity of the distributed database and withstand high concurrent access, we will convert the original centralized data

The data in the library is stored on multiple other network nodes.

In order to solve the problem of this single node, Redis will also deploy multiple copies of data to

other nodes for replication to achieve high availability of Redis and redundant backup of data,

To ensure the high availability of data and services.

Master-slave replication

What is master-slave replication

Master-slave replication , refers to copying data from one Redis server to other Redis servers. The former is called the master node (master), and the latter is called the slave node (slave). Data replication is one-way and can only be from the master node to the slave node.

By default, each Redis server is a master node; and a master node can have multiple slave nodes (or no slave nodes), but a slave node can only have one master node.

The role of master-slave replicationIntroduction to Redis master-slave replication and detailed explanation of its principles

1. Data redundancy: Master-slave replication realizes hot backup of data , is a data redundancy method other than persistence. 2. Fault recovery: When a problem occurs on the master node, the slave node can provide services to achieve rapid fault recovery; it is actually a kind of service redundancy.

3. Load balancing: Based on master-slave replication, combined with read-write separation, the master node can provide write services,

the slave nodes can provide read services (that is, when writing Redis data The application connects to the master node, and when reading Redis data, the application connects to the slave node) to share the server load; especially in the scenario of less writing and more reading, the read load is shared through multiple slave nodes

, which can greatly increase the concurrency of the Redis server. 4. Read and write separation: It can be used to achieve read and write separation, main library writing, slave library reading. Reading and writing separation can not only improve the load capacity of the server, but also can be used as needed. Change, change the number of slave libraries;

5. The cornerstone of high availability: In addition to the above functions, master-slave replication is also the basis for the implementation of sentinels and clusters.

Therefore, master-slave replication is Redis High availability foundation.

Enable master-slave replication

There are 3 ways to enable master-slave replication from the slave node:1. Configuration file: Add to the configuration file of the slave server:

slaveof <masterip>
<masterport>

2. Start command: Add redis-server after starting the command

--slaveof <masterip>
<masterport>

3. 客户端命令: Redis 服务器启动后,直接通过客户端执行命令:

slaveof
<masterip>
<masterport>

则该 Redis 实例成为从节点。

通过 info replication 命令可以看到复制的一些信息主从复制原理主从复制过程大体可以分为 3 个阶段:连接建立阶段(即准备阶段)、数据同步阶段、命令传播阶段。在从节点执行 slaveof 命令后,复制过程便开始运作,下面图示大概可以看到,从图中可以看出复制过程大致分为 6 个过程

Introduction to Redis master-slave replication and detailed explanation of its principles

主从配置之后的日志记录也可以看出这个流程

1)保存主节点(master)信息。

执行 slaveof 后 Redis 会打印如下日志:

Introduction to Redis master-slave replication and detailed explanation of its principles

2)从节点(slave)内部通过每秒运行的定时任务维护复制相关逻辑,当定时任务发现存在新的主节点后,会尝试与该节点建立网络连接

Introduction to Redis master-slave replication and detailed explanation of its principles

从节点与主节点建立网络连接

从节点会建立一个 socket 套接字,从节点建立了一个端口为 51234 的套接字,专门用于接受主节点发送的复制命令。从节点连接成功后打印如下日志:

Introduction to Redis master-slave replication and detailed explanation of its principles

如果从节点无法建立连接,定时任务会无限重试直到连接成功或者执行 slaveof noone 取消复制关于连接失败,可以在从节点执行 info replication 查看<span style="font-size: 14px; line-height: 1.76em;">master_link_down_since_seconds</span> 指标,它会记录与主节点连接失败的系统时间。从

节点连接主节点失败时也会每秒打印如下日志,方便发现问题:

# Error condition on socket for SYNC: {socket_error_reason}

3)发送 ping 命令。

连接建立成功后从节点发送 ping 请求进行首次通信,ping 请求主要目的如下:

·检测主从之间网络套接字是否可用。

·检测主节点当前是否可接受处理命令。

如果发送 ping 命令后,从节点没有收到主节点的 pong 回复或者超时,比如网络超时或者主节点正在阻塞无法响应命令,从节点会断开复制连接,下次定时任务会发起重

Introduction to Redis master-slave replication and detailed explanation of its principles

从节点发送的 ping 命令成功返回,Redis 打印如下日志,并继续后续复制流程:

Introduction to Redis master-slave replication and detailed explanation of its principles

4)权限验证。如果主节点设置了 requirepass 参数,则需要密码验证,从节点必须配

置 masterauth 参数保证与主节点相同的密码才能通过验证;如果验证失败复制将终

止,从节点重新发起复制流程。

5)同步数据集。主从复制连接正常通信后,对于首次建立复制的场景,主节点会把持

有的数据全部发送给从节点,这部分操作是耗时最长的步骤。

6)命令持续复制。当主节点把当前的数据同步给从节点后,便完成了复制的建立流程。

接下来主节点会持续地把写命令发送给从节点,保证主从数据一致性。

更多redis知识请关注redis数据库教程栏目。

The above is the detailed content of Introduction to Redis master-slave replication and detailed explanation of its principles. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:cnblogs. If there is any infringement, please contact admin@php.cn delete
Redis: Beyond SQL - The NoSQL PerspectiveRedis: Beyond SQL - The NoSQL PerspectiveMay 08, 2025 am 12:25 AM

Redis goes beyond SQL databases because of its high performance and flexibility. 1) Redis achieves extremely fast read and write speed through memory storage. 2) It supports a variety of data structures, such as lists and collections, suitable for complex data processing. 3) Single-threaded model simplifies development, but high concurrency may become a bottleneck.

Redis: A Comparison to Traditional Database ServersRedis: A Comparison to Traditional Database ServersMay 07, 2025 am 12:09 AM

Redis is superior to traditional databases in high concurrency and low latency scenarios, but is not suitable for complex queries and transaction processing. 1.Redis uses memory storage, fast read and write speed, suitable for high concurrency and low latency requirements. 2. Traditional databases are based on disk, support complex queries and transaction processing, and have strong data consistency and persistence. 3. Redis is suitable as a supplement or substitute for traditional databases, but it needs to be selected according to specific business needs.

Redis: Introduction to a Powerful In-Memory Data StoreRedis: Introduction to a Powerful In-Memory Data StoreMay 06, 2025 am 12:08 AM

Redisisahigh-performancein-memorydatastructurestorethatexcelsinspeedandversatility.1)Itsupportsvariousdatastructureslikestrings,lists,andsets.2)Redisisanin-memorydatabasewithpersistenceoptions,ensuringfastperformanceanddatasafety.3)Itoffersatomicoper

Is Redis Primarily a Database?Is Redis Primarily a Database?May 05, 2025 am 12:07 AM

Redis is primarily a database, but it is more than just a database. 1. As a database, Redis supports persistence and is suitable for high-performance needs. 2. As a cache, Redis improves application response speed. 3. As a message broker, Redis supports publish-subscribe mode, suitable for real-time communication.

Redis: Database, Server, or Something Else?Redis: Database, Server, or Something Else?May 04, 2025 am 12:08 AM

Redisisamultifacetedtoolthatservesasadatabase,server,andmore.Itfunctionsasanin-memorydatastructurestore,supportsvariousdatastructures,andcanbeusedasacache,messagebroker,sessionstorage,andfordistributedlocking.

Redis: Unveiling Its Purpose and Key ApplicationsRedis: Unveiling Its Purpose and Key ApplicationsMay 03, 2025 am 12:11 AM

Redisisanopen-source,in-memorydatastructurestoreusedasadatabase,cache,andmessagebroker,excellinginspeedandversatility.Itiswidelyusedforcaching,real-timeanalytics,sessionmanagement,andleaderboardsduetoitssupportforvariousdatastructuresandfastdataacces

Redis: A Guide to Key-Value Data StoresRedis: A Guide to Key-Value Data StoresMay 02, 2025 am 12:10 AM

Redis is an open source memory data structure storage used as a database, cache and message broker, suitable for scenarios where fast response and high concurrency are required. 1.Redis uses memory to store data and provides microsecond read and write speed. 2. It supports a variety of data structures, such as strings, lists, collections, etc. 3. Redis realizes data persistence through RDB and AOF mechanisms. 4. Use single-threaded model and multiplexing technology to handle requests efficiently. 5. Performance optimization strategies include LRU algorithm and cluster mode.

Redis: Caching, Session Management, and MoreRedis: Caching, Session Management, and MoreMay 01, 2025 am 12:03 AM

Redis's functions mainly include cache, session management and other functions: 1) The cache function stores data through memory to improve reading speed, and is suitable for high-frequency access scenarios such as e-commerce websites; 2) The session management function shares session data in a distributed system and automatically cleans it through an expiration time mechanism; 3) Other functions such as publish-subscribe mode, distributed locks and counters, suitable for real-time message push and multi-threaded systems and other scenarios.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function