【Redis系列】主从复制

【Redis系列】深入浅出Redis主从复制之读写分离【一篇搞懂Redis复制】 Redis默认采用异步复制的持久化方案(RDB),具备低延迟、高性能的特点。这是大多数Redis的自然复制模式。 主从复制(master-replica)-读写分离这是基于RDB持久化方案的全量数据复制模式。 1.主从复制-读写分离原理 为了解决高并发场景下Redis的性能问题,需要对单例Redis进行横向扩展;我们都知道在缓存中读的并发量要远远大于写的并发量。所以就产生了一种读写分离的方法: 将读和写分开,master节点可以进行读写操作,而slave节点只能进行读操作(conf文件可以修改),因此读. 阅读详情


🚀 欢迎来到我的优快云博客:Optimistic _ chen
✨ 一名热爱技术与分享的全栈开发者,在这里记录成长,专注分享编程技术与实战经验,助力你的技术成长之路,与你共同进步!


🚀我的专栏推荐:

专栏内容特色适合人群
🔥C语言从入门到精通系统讲解基础语法、指针、内存管理、项目实战零基础新手、考研党、复习
🔥Java基础语法系统解释了基础语法、类与对象、继承Java初学者
🔥Java核心技术面向对象、集合框架、多线程、网络编程、新特性解析有一定语法基础的开发者
🔥Java EE 进阶实战Servlet、JSP、SpringBoot、MyBatis、项目案例拆解想快速入门Java Web开发的同学
🔥Java数据结构与算法图解数据结构、LeetCode刷题解析、大厂面试算法题面试备战、算法爱好者、计算机专业学生
🔥Redis系列从数据类型到核心特性解析项目必备

🚀我的承诺:
✅ 文章配套代码:每篇技术文章都提供完整的可运行代码示例

✅ 持续更新:专栏内容定期更新,紧跟技术趋势

✅ 答疑交流:欢迎在文章评论区留言讨论,我会及时回复(支持互粉)


🚀 关注我,解锁更多技术干货!
⏳ 每天进步一点点,未来惊艳所有人!✍️ 持续更新中,记得⭐收藏关注⭐不迷路 ✨

📌 标签:#技术博客  #编程学习  #Java  #C语言  #算法  #程序员

单点问题

分布式系统面临一个核心挑战:单点故障问题。当服务器程序仅部署在单一节点时,不仅可能因服务器宕机导致服务中断,还会制约系统性能的提升空间。

为解决这一问题,分布式系统通常采用数据多副本部署策略,将数据复制到多台服务器。这种做法既能实现故障快速恢复,又能有效进行负载均衡。Redis同样遵循这一原则,通过内置的复制功能,创建多个包含相同数据的Redis副本来确保系统可靠性。

主从复制

复制原因

参与复制的若干个Redis节点划分为主节点和从节点,每个从节点只能有一个主节点,而一个主节点可以有多个从节点。从节点数据要和主节点数据保持一致,这意味着从节点要以主节点的数据为准。
所以复制的数据流只能由主节点到从节点,那么如果从节点的数据发生变化要怎么同步数据呢?其实从节点的数据根本不允许写数据。 更准确的是,主从复制主要是针对“读操作”,进行并发量&可用性的提高。而写操作的话,无论是可用性还是并发性,都是非常依赖主节点。

启动多个redis服务

启动多个redis-server,但是要注意,新启动的redis-server端口不能和默认端口(6379)冲突。我们有几种方式来指定redis-server的端口:

  • 在配置文件中加入slaveof{masterHost}{masterPort}随Redis启动生效
  • 在redis-server启动命令时加入:–slaveof{masterHost}{masterPort}生效
  • 直接使用redis命令:slaveof{masterHost}{masterPort}生效

在配置文件中设置端口号,首先先复制两个配置文件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
使用命令启动redis服务:

redis-server ./slave1.conf
redis-server ./slave2.conf

在这里插入图片描述
但是目前三个节点并没有构成主从结构,三个节点想要相互联系、构成主从结构,还需要进行进一步配置!

构造主从结构

配置复制的⽅式有以下三种(修改配置文件一直生效):

  1. 在配置文件中加入slaveof{masterHost} {masterPort} 随redis启动生效
  2. 在redis-server启动命令时加入,–slaveof{masterHost} {masterPort} 开始生效
  3. 直接使用redis命令,slaveof{masterHost} {masterPort} 生效

设置6379为主节点,6380和6381为从节点
在这里插入图片描述
注意,修改完redis配置文件后需要重新启动才会生效。
通过netstat -anp|grep redis-serve命令查找所有redis服务,去kill -9 -portredis进程,最后直接启动即可。
在这里插入图片描述
启动后就实现了主从结构了。
在这里插入图片描述
完成主从复制配置。
在这里插入图片描述
通过info replication命令查看节点相关信息
在这里插入图片描述

断开复制

slaveof命令不仅可以建立复制,还可以在从节点执行 slaveof no one来断开与主节点的主从复制关系。
注意:当前的修改是临时性的,如果重启redis服务器,仍然会按照配置文件中设置的内容建立主从关系

从节点断开复制后并不会抛弃原有数据,只是无法再从主节点上获取数据变化。通过slaveof命令还可以实现切主操作,将当前从节点的数据源切换到另⼀个主节点。执⾏slaveof {newMasterIp} {newMasterPort} 命令即可.

  1. 断开与旧主节点的复制关系
  2. 与新主节点建立复制关系
  3. 删除从节点当前所有数据
  4. 从新主节点进行复制操作

主从节点一般由TCP连接,那么网络延迟就是要考虑的问题,Redis为我们提供了repl-disable-tcp-nodelay 参数⽤于控制是否关闭TCP_NODELAY,默认为no,即开启tcp-nodelay 功能.

  • 关闭tcp-nodelay时,主节点产⽣的命令数据⽆论⼤⼩都会及时地发送给从节点,这样主从之间延迟会变⼩,但增加了⽹络带宽的消耗
  • 开启tcp-nodelay时,主节点会合并较⼩的TCP数据包从⽽节省带宽。默认发送时间间隔取决于Linux的内核,⼀般默认为40毫秒。这种配置节省了带宽但增⼤主从之间的延迟

拓扑结构

Redis 的复制拓扑结构可以⽀持单层或多层复制关系:

  • 一主一从结构:⼀主⼀从结构是最简单的复制拓扑结构,⽤于主节点出现宕机时从节点提供故障转移⽀持。当应⽤写命令并发量较⾼且需要持久化时,可以只在从节点上开启AOF,这样既可以保证数据安全性同时也避免了持久化对主节点的性能⼲扰
  • 一主多从结构:使得应⽤端可以利⽤多个从节点实现读写分离,对于读⽐重较⼤的场景,可以把读命令负载均衡到不同的从节点上来分担压⼒
  • 树型主从结构:使得从节点不但可以复制主节点数据,同时可以作为其他从节点的主节点继续向下层复制

复制原理

在这里插入图片描述

数据同步psync

Redis 使⽤psync命令完成主从数据同步

psync replicationid offset
  • replicationid(复制ID) :主节点生成的唯一标识,用于标识数据集的特定历史版本。主节点启动时生成一个replicationid ;如果replicationid 设为 ? 并且offset设为 -1 此时就是在尝试进⾏全量复制,若设为具体的数值,尝试进⾏部分复制。
  • offset:一个自增的64位整数,记录主节点向从节点发送的字节数。主节点每发送一个字节数据,offset 加1;记录复制进度,用于确定需要同步的数据范围。如果两个节点,他们的replid和offset都相同,则这两个节点上持有的数据,就⼀定相同。
    在这里插入图片描述
  1. 从节点发送psync命令给主节点
  2. 主节点根据psync参数和自身情况响应结果:
  • 如果回复+FULLRESYNC replid offset,则从节点需要进⾏全量复制流程
  • 如果回复+CONTINEU,从节点进⾏部分复制流程
  • 如果回复-ERR,说明Redis主节点版本过低,不⽀持psync命令。从节点可以使⽤sync命令进⾏全量复制(psync Redis会在主从复制模式下⾃动调⽤执⾏; sync会阻塞redis-server处理其他请求.psync则不会)

全量复制

⼀般⽤于初次复制场景,Redis早期⽀持的复制功能只有全量复制,它会把主节点全部数据⼀次性发送给从节点。

  1. 从节点发送psync命令给主节点进主节点行数据同步,由于第一次进行复制,从节点没有主节点的replicationid和offset,所以发送psync ? -1
  2. 主节点根据命令,解析出要进⾏全量复制,回复 +FULLRESYNC 响应
  3. 从节点接收主节点的运⾏信息进⾏保存
  4. 主节点执行bgsave进行RDB文件持久化
  5. 从节点发送RDB⽂件给从节点,从节点保存RDB数据到本地硬盘
  6. 主节点将从⽣成RDB到接收完成期间执⾏的写命令,写⼊缓冲区中,等从节点保存完RDB⽂件后,主节点再将缓冲区内的数据补发给从节点
  7. 从节点清空⾃⾝原有旧数据
  8. 从节点加载RDB⽂件得到与主节点⼀致的数据
  9. 如果从节点加载RDB完成之后,并且开启了AOF持久化功能,它会进⾏bgrewrite操作,得到最近的AOF⽂件

在这里插入图片描述

部分复制

⽤于处理在主从复制中因⽹络闪断等原因造成的数据丢失场景,当从节点再次连上主节点后,如果条件允许,主节点会补发数据给从节点。

  1. 当主从节点之间出现⽹络中断时,如果超过repl-timeout时间,主节点会认为从节点故障并终端复制连接
  2. 主从连接中断期间主节点依然响应命令,但这些复制命令都因⽹络中断⽆法及时发送给从节点,所以暂时将这些命令滞留在复制积压缓冲区中。
  3. 当主从节点⽹络恢复后,从节点再次连上主节点
  4. 从节点将之前保存的replicationId和offset作为psync的参数发送给主节点,请求进⾏部分复制
  5. 主节点接到psync请求后,进⾏必要的验证。随后根据offset去复制积压缓冲区查找合适的数据,并响应+CONTINUE给从节点
  6. 主节点将需要从节点同步的数据发送给从节点,最终完成⼀致性
    在这里插入图片描述

复制积压缓存区

复制积压缓冲区是保存在主节点上的⼀个固定⻓度的队列,默认⼤⼩为1MB。当主节点(master)连接有从节点(slave)时,若主节点执行写操作,不仅会将该命令同步至从节点,同时还会将其写入复制积压缓冲区。

在这里插入图片描述
由于缓冲区本质上是先进先出的定⻓队列,所以能实现保存最近已复制数据的功能,⽤于部分复制和复制命令丢失的数据补救。相关信息可以通过主节点info replication中:
在这里插入图片描述

实时复制

主从节点在建立复制连接后,主节点会把自己收到的修改操作,通过tcp长连接的方式,源源不断的传输给从节点。从节点就会根据这些请求来同时修改自身数据,从而保持和主节点数据的一致性。

另外,tcp连接需要通过心跳包的方式维护连接:

  1. 主从节点彼此都有心跳检测机制,各自模拟成对方的客户端进行通信
  2. 主节点默认每隔10秒对从节点发送ping命令,判断从节点的存活性和连接状态
  3. 从节点默认每隔1秒向主节点发送replconf ack {offset}命令,给主节点上报自身当前的复制偏移量

如果主节点发现从节点通信延迟超过repl-timeout配置的值,则判断从节点下线,断开复制客户端连接。从节点恢复连接后,心跳机制继续进行。

完结撒花!🎉

如果这篇博客对你有帮助,不妨点个赞支持一下吧!👍
你的鼓励是我创作的最大动力~

✨ 想获取更多干货? 欢迎关注我的专栏 → optimistic_chen
📌 收藏本文,下次需要时不迷路!

我们下期再见!💫 持续更新中……


悄悄说:点击主页有更多精彩内容哦~ 😊

在这里插入图片描述

【Redis系列】Redis持久化、主从复制 阅读详情

相关推荐

Unity3D Pico VR 手势交互实战:基于MRTK3实现抓握与射线控制

本文针对Pico VR原生手势交互功能不足的问题,提供了基于MRTK3实现高级手势交互的实战解决方案。通过将MRTK3成熟的交互框架与Pico的手势追踪能力相结合,详细讲解了从环境配置、SDK导入、核心适配到真机调试的全流程,帮助开发者高效实现抓握与射线控制等复杂交互,有效提升Pico VR应用的开发效率与体验。

weixin_29011667的博客 391

Redis基础系列-主从复制

redis 主从复制 一主二从

囚徒之困 1699

基于PLC的全自动洗衣机控制系统+控制程序

本设计使用PLC控制系统替换了传统的继电器控制系统,实现了全自动洗衣机在硬件方面的提升,丰富了全自动洗衣机在软件方面的功能,提高了全自动洗衣机的洗衣效率,基本可以满足用户的洗衣需求。

zzzz114231的博客 8954

Redis系列之主从复制

主从复制 基本介绍 Redis支持主从复制功能,可以通过执行slaveof(Redis5版本以后改成replicaof)或者在配置文件中设置slaveof(Redis5版本以后改成replicaof)来开启复制功能。 一主两丛 一主多从 主从基本配置 主Redis配置 主Redis配置基本不用修改,重点部分在从Redis配置 从Redis配置 1、复制一份redis.conf文件 2、相关配置修改 # salve的端口号 port 6380 #把pid进程

weixin_64314555的博客 1200

无法联网的情况下,dbeaver离线安装数据库驱动-clickhouse

无法联网的情况下,dbeaver离线安装数据库驱动-clickhouse

u012831187的博客 1万+

当OTN网络遭遇LOS告警:5个运维老手才知道的故障定位技巧(含CA动作对照表)

本文深入解析OTN网络中LOS告警的实战定位技巧,涵盖光功率深度诊断、模块差异分析及核心的CA动作机制。通过逆向追踪告警流与对照速查表,帮助运维人员快速锁定故障段落,区分硬软故障,并掌握系统健康度评估方法,从而提升排障效率与网络稳定性。

weixin_29266007的博客 551

redis系列——主从复制

1、redis主从复制是什么? 主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 2、能干嘛? 读写分离,性能扩展; 容灾快速恢复 3、怎么玩:主从复制? 拷贝多个redis.conf文件include(写绝对路径) 开启daemonize yes Pid文件名字pidfile 指定端口port Log文件名字 dump.rdb名字dbfilename Appendonly 关掉或者换名字 3....

大黄_sama 272

AD620单电源应变片测量电路分析

笔者最近在用AD620做应变片的压力检测电路,正好AD620的datasheet中有对于应变片压力测量的应用电路,参考该电路进行设计及实验后发现该电路存在些许问题,并对其进行了优化改进。本文纯属个人理解,供大家参考,欢迎批评指正。 AD620应用电路分析及优化 应用电路分析 AD620手册中原电路如下(加了部分标注以便分析): 该电路中,前半部分比较明显,为经典的AD620放大电路结构:四个应变...

拙诚电子工作室 1万+

Redis系列--主从复制

在 Redis 复制的基础上,使用和配置主从复制非常简单,能使得从 Redis 服务器(下文称 slave)能精确得复制主 Redis 服务器(下文称 master)的内容。每次当 slave 和 master 之间的连接断开时, slave 会自动重连到 master 上,并且无论这期间 master 发生了什么, slave 都将尝试让自身成为 master 的精确副本。一句话就是主从复制,master以写为主,slave以读为主。

weixin_42972832的博客 1271

vivado Block Design 设计 .tcl 文件使用,导出,修改,添加方式

在vivado中生成 Block Design可以导出tcl文件进行保存(体积小),或者在别的版本vivado中打开(版本互通),这是一个非常好的功能。另外GitHub中很多项目都是采用这种方式上传的,学会如何使用可以快速修改历程项目。

2203_75345038的博客 2493

SAP IDOC实战:如何用EDI实现跨公司采购订单自动生成销售订单(附完整配置步骤)

本文详细解析了如何利用SAP IDOC与EDI技术,实现跨公司采购订单自动生成销售订单的完整流程。通过实战案例,从业务蓝图设计、输出条件配置、伙伴参数设定到IDOC消息类型处理,提供了清晰的配置步骤与故障排查指南,帮助企业打通内部业务流,构建高效的自动化闭环。

weixin_29215815的博客 727

Redis 7.x 系列【21】主从复制

主从复制是一种常见的数据库复制技术,用于实现数据备份、读写分离和高可用。Redis也支持主从复制,可以将一个Redis服务器的数据复制到多个其他Redis,从服务器(Slave)保持与主服务器(Master)相同的数据副本。主节点Master):负责接收客户端的写操作,并将其同步到从节点。从节点Slave):只能接收读操作请求,不能进行写操作。从节点会复制主节点的数据,并保持与主节点的数据同步。

记录知识、锤炼自我 1773

uniCloud云存储进阶:七牛云扩展存储从开通、绑定域名到批量上传的完整实战

本文详细介绍了uniCloud云存储进阶实践,重点讲解如何通过七牛云扩展存储实现从开通、绑定域名到批量上传的完整流程。内容涵盖成本优势分析、域名备案方案、SSL证书配置、多文件并发上传控制等实战技巧,并提供可直接复用的代码示例,帮助开发者高效构建内容社区类应用。

weixin_26985923的博客 468

快速入门Redis系列(5)——Redis的主从复制架构

        作为快速入门Redis系列的第五篇博客,本篇为大家带来的是Redis的主从复制架构。         码字不易,先赞后看! 文章目录Redis的主从复制架构第一步:node02与node03服务器安装Redis<1&...

大数据梦想家 7190

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Redis系列(三)Redis主从复制

持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失, 如果通过redis的主从复制机制就可以避免这种单点故障。主从复制架构如下图 说明: 主redis中的数据有两个副本(replication)即从redis1和从redis2,即使一台redis服务器宕机其它两台redis服务也可以继...

fd135的博客 266

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

系列十二、Redis的主从复制

主从复制架构仅仅用来解决数据的冗余备份,从节点仅仅用来同步数据。

仰望星空,脚踏实地!安全感是自己给的,努力才是一辈子的安全感。 380

【Redis 系列】redis 学习十,Redis 集群搭建和主从复制

主从复制的理论 先来说说什么是主从复制 主从复制,就是将一台 redis 服务器的数据,复制到其他的 redis 服务器上, 前者为主节点 master,后者为从节点 slave 数据的复制是单向的,只能是主机复制到从机,master 以写为主,slave 以读为主 默认的情况下,每台 redis 服务器都是主节点,并且一个主节点都会有多个从节点或者没有从节点,但是反过来,一个从节点,只能有一个主节点 主从复制的作用: 数据冗余 主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式 故障恢复

m0_37322399的博客 1098

【Redis系列】Redis主从复制

一般redis 做主从复制的话,不可能只用一个。这样一但发生故障,丢失数据就比较危险。优势:1: 主从备份 防止主机宕机 2: 读写分离,分担master的任务 例如:大量计算的时候,可以用交给一些特定的计算机。 3: 任务分离,如从服分别分担备份工作与计算工作原理图:方式一:方式二:解释这两种方式的区别是: 第一种是:两个从机监视一台主机,当主机宕机之

博学之,审问之,慎思之,明辨之,笃行之 743

Redis系列八:主从复制

文章目录主从复制概述如何使用主从复制开启主从复制断开主从复制主从复制的实现原理连接建立阶段数据同步阶段命令传播阶段【数据同步阶段】全量复制和部分复制全量复制部分复制psync命令的执行【命令传播阶段】心跳机制主-->从:PING从-->主:REPLCONF ACK应用中的问题读写分离及其中的问题复制超时问题各场景下复制的选择及优化技巧复制相关的配置单机内存大小限制 主从复制概述 在Redis客户端通过info replication可以查看与复制相关的状态,对于了解主从节点的当前状态,以及解决出

Eamon 704

Redis 讲解系列之 Redis的主从复制(一)

Redis 讲解系列之 Redis的复制(一)概念 Conception(概念) Redis的复制也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。 Function(功能)读写分离(秉持与RDBMS 相同的设计理念) 容灾恢复 Redis的复制的实现这里我们将具体说明并演示Redis的S-M Rel

Dusty丶one的博客 827

redis系列(三) redis主从复制

当redis服务器发生单点故障硬盘损坏时,无论是RDB还是AOF机制都无法回复数据,如果实现高可用性 主从复制,是指将一台redis服务器的数据,复制到其他的redis服务器,前者称为住服务器,后者称为从服务器,数据的复制是单向的只能由主服务器到从服务器 默认情况下。每台服务器都是主服务器,且一个主服务器可以有多个服务器(没有从服务器)但是一个从服务器只能有一个主服务器 主从复制的作用:数据...

qq_38130094的博客 303

Redis系列十三:Redis高可用之主从复制

一、主从复制概述 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。 主从复制的作用 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。 负载均衡:在主...

w1lgy的博客 482

【Redis实现系列】主从复制实现

主从复制 在Redis中,用户可以通过执行 SLAVEOF 命令或者设置 slaveof 选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave)。 Redis的复制功能分为同步(sync)和命令传播(command propagate)两个操作: 同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。 命令传播操作则用于在主服务器的数据库状态被修改,导致主从服务器的数据库

菜鸡也有大佬梦 537

Redis6 系列九 主从复制

1.Redis_主从复制 1.1.是什么 主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 1.2.能干嘛 读写分离,性能扩展 容灾快速恢复 1.3.怎么玩:主从复制 拷贝多个redis.conf文件include(写绝对路径) 开启daemonize yes Pid文件名字pidfile 指定端口port Log文...

qq_32265203的博客 137

Redis系列八:redis主从复制和哨兵

一、Redis主从复制 主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性 1. 主从复制的相关操作 a,配置主从复制方式一、新增redis6380.conf, 加入 slaveof 192.168.152.1286379, 在6379启动完后再启6380,完成配置; b,配置主从复制方式二、redis-server --slaveof 192.16...

C18298182575的博客 269

【Redis 系列】redis 学习,Redis 集群搭建和主从复制

主从复制的理论 先来说说什么是主从复制 主从复制,就是将一台 redis 服务器的数据,复制到其他的 redis 服务器上, 前者为主节点 master,后者为从节点 slave 数据的复制是单向的,只能是主机复制到从机,master 以写为主,slave 以读为主 默认的情况下,每台 redis 服务器都是主节点,并且一个主节点都会有多个从节点或者没有从节点,但是反过来,一个从节点,只能有一个主节点 主从复制的作用: 数据冗余 主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式 故障

m0_58554082的博客 218
上一篇: 【Redis系列】事务特性
下一篇: 【Docker入门】容器技术
Optimistic _ chen
博客等级 码龄3年 1553粉丝 127原创
评论 63
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Optimistic _ chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值