Redis(十一)--关于redis的一些常见问题(2)

YOLOv8改进 - 注意力篇 - 引入CAA注意力机制 阅读详情

Redis(十一)–关于redis的一些常见问题(2)

这篇博士的内容主要包括:

  • 1,watch命令和基于cas乐观锁
  • 2,什么是缓存和数据库双写不一致,怎么解决?
  • 3,关于持久化:
  • 几个链接:

1,watch命令和基于cas乐观锁

Redis 通过MULTI 、EXEC、WATCH等命令来实现事物功能。事物提供了一种将多个命令请求打包,然后一次性、按顺序的执行多个命令的机制,并且在事物执行期间,服务器不会中断事物而去执行其他客户端的命令请求,它会将事物中所有的命令都执行完毕。Redis事物不支持回滚操作,所以事物队列中某个命令执行错误,整个事物也会继续执行下去(所以redis是部分支持事务的)。

在Redis的事务中,WATCH命令可用于提供CAS(check-and-set)功能。假设我们通过WATCH命令在事务执行之前监控了多个Keys,倘若在WATCH之后有任何Key的值发生了变化,EXEC命令执行的事务都将被放弃,同时返回Null multi-bulk应答以通知调用者事务执行失败。例如,我们再次假设Redis中并未提供incr命令来完成键值的原子性递增,如果要实现该功能,我们只能自行编写相应的代码。其伪码如下:

 	  val = GET mykey
      val = val + 1
      SET mykey $val

以上代码只有在单连接的情况下才可以保证执行结果是正确的,因为如果在同一时刻有多个客户端在同时执行该段代码,那么就会出现多线程程序中经常出现的一种错误场景–竞态争用(race condition)。比如,客户端A和B都在同一时刻读取了mykey的原有值,假设该值为10,此后两个客户端又均将该值加一后set回Redis服务器,这样就会导致mykey的结果为11,而不是我们认为的12。为了解决类似的问题,我们需要借助WATCH命令的帮助,见如下代码:

	  WATCH mykey
      val = GET mykey
      val = val + 1
      MULTI
      SET mykey $val
      EXEC

和此前代码不同的是,新代码在获取mykey的值之前先通过WATCH命令监控了该键,此后又将set命令包围在事务中,这样就可以有效的保证每个连接在执行EXEC之前,如果当前连接获取的mykey的值被其它连接的客户端修改,那么当前连接的EXEC命令将执行失败。这样调用者在判断返回值后就可以获悉val是否被重新设置成功。

2,什么是缓存和数据库双写不一致,怎么解决?

解释:连续写数据库和缓存,但是操作期间,出现并发了,数据不一致了。

通常,更新缓存和数据库有以下几种顺序:

  • 先更新数据库,再更新缓存。
  • 先删缓存,再更新数据库。
  • 先更新数据库,再删除缓存。

三种方式的优劣来看一下:

先更新数据库,再更新缓存:

这么做的问题是:如果A,B两个线程同时做数据更新,A先更新了数据库,B后更新数据库,则此时数据库里存的是B的数据。而更新缓存的时候,是B先更新了缓存,而A后更新了缓存,则缓存里是A的数据。这样缓存和数据库的数据也不一致。

先删缓存,再更新数据库:

这么做的问题:如果在删除缓存后,有客户端读数据,将可能读到旧数据,并有可能设置到缓存中,导致缓存中的数据一直是老数据。即,如果A,B两个线程同时要更新数据,并且A,B已经都做完了删除缓存这一步,接下来,A先更新了数据库,C线程读取数据,由于缓存没有,则查数据库,并把A更新的数据,写入了缓存,最后B更新数据库。那么缓存和数据库的值就不一致了。

有 2 种解决方案:

  • 使用“双删”,即删更删,最后一步的删除作为异步操作,就是防止有客户端读取的时候设置了旧值。
  • 使用队列,当这个 key 不存在时,将其放入队列,串行执行,必须等到更新数据库完毕才能读取数据。

总的来讲,比较麻烦。

先更新数据库,再删除缓存:

这个实际是常用的方案,这里介绍一下,这个叫 Cache Aside Pattern:
读的时候,先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。更新的时候,先更新数据库,再删除缓存。

==>使用双删!!!记录更新期间有没有客户端读数据库,如果有,在更新完数据库之后,执行延迟删除。

3,关于持久化:

之前总结了持久化,写的是比较繁琐,在这个链接上:之前总结的关于持久化的,但是在面试时的回答应该怎样简洁又严谨的,所以参考了很多,如下:

面试官:你对redis的持久化机制了解吗?能讲一下吗?

我:redis为了保证效率,数据缓存在了内存中,但是会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件中,以保证数据的持久化。Redis的持久化策略有两种:

  • RDB:快照形式是直接把内存中的数据保存到一个dump的文件中,定时保存,保存策略。
  • AOF:把所有的对Redis的服务器进行修改的命令都存到一个文件里,命令的集合。Redis默认是快照RDB的持久化方式。

当Redis重启的时候,它会优先使用AOF文件来还原数据集,因为AOF文件保存的数据集通常比RDB文件所保存的数据集更完整。你甚至可以关闭持久化功能,让数据只在服务器运行时存。

==>面试官:那你再说下RDB是怎么工作的?

我:默认Redis是会以快照"RDB"的形式将数据持久化到磁盘的一个二进制文件dump.rdb。工作原理简单说一下:当Redis需要做持久化时,Redis会fork一个子进程,子进程将数据写到磁盘上一个临时RDB文件中。当子进程完成写临时文件后,将原来的RDB替换掉,这样的好处是可以copy-on-write。

我:RDB的优点是:这种文件非常适合用于备份:比如,你可以在最近的24小时内,每小时备份一次,并且在每个月的每一天也备份一个RDB文件。这样的话,即使遇上问题,也可以随时将数据集还原到不同的版本。RDB非常适合灾难恢复。RDB的缺点是:如果你需要尽量避免在服务器故障时丢失数据,那么RDB不合适你。

==>面试官:那你要不再说下AOF??

我:(说就一起说下吧)使用AOF做持久化,每一个写命令都通过write函数追加到appendonly.aof中,配置方式如下:

appendfsync yes   
appendfsync always     #每次有数据修改发生时都会写入AOF文件。
appendfsync everysec   #每秒钟同步一次,该策略为AOF的缺省策略。

AOF可以做到全程持久化,只需要在配置中开启 appendonly yes。这样redis每执行一个修改数据的命令,都会把它添加到AOF文件中,当redis重启时,将会读取AOF文件进行重放,恢复到redis关闭前的最后时刻。

使用AOF的优点是会让redis变得非常耐久。可以设置不同的fsync策略,aof的默认策略是每秒钟fsync一次,在这种配置下,就算发生故障停机,也最多丢失一秒钟的数据。缺点是对于相同的数据集来说,AOF的文件体积通常要大于RDB文件的体积。根据所使用的fsync策略,AOF的速度可能会慢于RDB。

==>面试官又问:你说了这么多,那我该用哪一个呢?

我:如果你非常关心你的数据,但仍然可以承受数分钟内的数据丢失,那么可以额只使用RDB持久。AOF将Redis执行的每一条命令追加到磁盘中,处理巨大的写入会降低Redis的性能,不知道你是否可以接受。数据库备份和灾难恢复:定时生成RDB快照非常便于进行数据库备份,并且RDB恢复数据集的速度也要比AOF恢复的速度快。当然了,redis支持同时开启RDB和AOF,系统重启后,redis会优先使用AOF来恢复数据,这样丢失的数据会最少。

参考至:java知音

下面附上几个连接:

https://mp.weixin.qq.com/s/jc-RCNSvbOykSsoKmCJLow

https://mp.weixin.qq.com/s/3KU4Bi2RChVAxcq2F-iNZA

https://mp.weixin.qq.com/s/UzYQRhwA4ubDry_Ve59Rpg

https://mp.weixin.qq.com/s/jc-RCNSvbOykSsoKmCJLow

https://mp.weixin.qq.com/s/IRuM4wP3We44JUvX2Ai5uw

手把手教你ensp仿真搭建校园网(含防火墙及无线网络)系列(一)校园网核心交换机配置 本系列博客将带你从零开始,使用 华为 eNSP(Enterprise Network Simulation Platform) 仿真搭建一个完整的校园网络,涵盖 核心层、汇聚层、接入层、防火墙安全策略、无线AC+AP组网 等实战场景。无论你是网络初学者还是希望深化实战经验的工程师,都能通过本教程掌握企业级网络的规划、配置与排错技巧。 阅读详情

相关推荐

kettle信息发送钉钉

由于其他的作业比较多,想要在job中加入一个转化发送消息到钉钉,其他的配置说明直接获取系统的信息。这样也避免直接修改其他的转换和大量的工作量。 步骤: 1、新建一个转换 拉取获取系统信息、获取变量、JavaScript代码、获取access_token组件。 2、获取系统信息设置 拿到需要的信息,比如作业的读写更新删除行数,job的日志内容 这个日志内容同在作业执行页面下输出的日志,所以可以在执行作业时选择是详细日志、基本日志还是错误日志。 3、获取变量 获取变量主要是想要去拿到job的名称,文件名。按

Deng_7788的博客 1445

tomcat-redis-session 共享 异常解决:Race condition encountered: attempted to load session[xxx]

在使用tomcat-redis-session-manager 的时候,tomcat7 总是报错: 异常报告消息 Race condition encountered: attempted to load session[xxx] which has been created but not yet serialized.描述 服务器遇到一个意外的情况,阻止它完成请求。例外情况java.lang.IllegalStateException: Race condition encountered: atte

点一根烟 浪迹天涯 820

强化学习-----DQN(Deep Q-network)

DQN(Deep Q-Network)是一种基于深度学习和强化学习的算法,由DeepMind提出,用于解决离散动作空间下的马尔科夫决策过程(MDP)问题。它是首个成功将深度学习应用于解决强化学习任务的算法之一。DQN,即深度Q网络(Deep Q-network),是指基于深度学习的Q-Learing算法。那什么是Q-leaning?可以看上一篇文章Q-learning是一种经典的强化学习算法,用于解决马尔可夫决策过程(Markov Decision Process,MDP)中的控制问题。

qq_74722169的博客 2万+

Redis事务、MULTI 命令和EXEC 命令

Redis事务 文章目录Redis事务事务实例MULTI 命令EXEC 命令事务异常1. 进入队列之前发生错误Redis 是没有回滚操作的Watch 命令执行 watch 命令,不执行 MULTI、exec执行 watch 命令,通知执行 MULTI、execUnWatch 命令 redis是NOSQL数据库,所以也存务,只是在事此事务和关系型数据库的事务是有区别的。 事务实例 MULTI 命...

小熙的进化史 1747

Proteus 8.17安装部署全指南:避坑、汉化与STM32库配置

Proteus是一款广泛用于单片机仿真与电路设计的EDA工具,其核心价值在于支持嵌入式系统原型验证与教学实践。Proteus 8.17版本重构了许可证机制(LIC Engine)、依赖环境(VC++ 2019/NET 4.8)及路径加载逻辑,导致传统安装方法失效。掌握正确安装部署流程,是保障原理图绘制、VSM仿真(如51/STM32/ESP32)及外设波形观测(OLED、SPI、ADC)稳定运行的前提。本文聚焦Windows平台下零失败安装路径选择、权限配置、汉化实施与高频器件(如STM32F103)元件库

weixin_33377602的博客 402

DeepSeek+Dify实战:零代码构建智能SQL生成器

本文详细介绍了如何利用DeepSeek和Dify零代码构建智能SQL生成器,帮助非技术人员通过自然语言查询数据库。文章涵盖从数据准备、知识库设计到Agent配置的全流程,并提供了优化技巧和实际应用案例,显著提升团队数据查询效率。

weixin_29311017的博客 418

redis学习笔记(二)—redis使用中可能遇到的问题与解决方案

一、缓存雪崩 在引入redis缓存后,引起了缓存雪崩问题。 由于热点数据的时效性,故需要在给redis设定时限。让redis定时清空,到数据库重新获取。而清空时,所有请求转向MySQL,此时MySQL可能无法承受如此巨大的并发量,可能发生宕机或卡顿现象。 导致缓存雪崩问题的原因: 同一时刻所有数据同时失效 解决措施:数据设置为随机有效期 redis服务器宕机 解决措施:使用多级缓存(设置多台服务器)或搭建redis集群 二、缓存击穿 某一极度热门数据失效,此时请求该数据的所有请求到MySQL。 解决

Huathy的博客 1037

基因家族快速鉴定指南:Windows平台下的HMMER实战解析

本文详细解析了在Windows平台下使用HMMER工具进行基因家族快速鉴定的完整实战流程。通过手把手指导,从软件获取、数据准备到模型构建与序列搜索,帮助生物信息学新手无需Linux环境,即可高效完成bZIP转录因子等家族的鉴定工作,大幅降低分析门槛。

weixin_29255731的博客 456

Redis-监控Watch(面试常问!)

Redis-监控Watch前言概括1、Redis测监视测试1.1、正常执行成功1.2、测试多线程修改值 ,事务执行失败 返回(nil)1.2.1、如果事务修改失败,怎么办? 前言 提示:本文章是日常学习内容的总结,并非全部原创;仅供大家参考借鉴,并无其他商业用途。Bilibili搜索关注:狂神说 真正在公司中的实践:NoSQL + RDBMS 一起使用才是最强的,阿里巴巴的架构演进! 技术没有高低之分,就看你如何去使用!(提升内功,思维的提高!) 云计算的长征之路:阿里云的这群疯子 概括 悲观锁: 很悲观

ws13575291650的博客 1万+

23.501中英对照(46):5QI到Qos特征的映射

注4:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为1毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注5:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为2毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注6:对于UPF终止N6与5G-AN之间的延迟,CN PDB的静态值为5毫秒,应从给定的PDB中减去该值以得出适用于无线接口的分组延迟预算。注:建议为任何新的非GBR资源类型的标准化5QI分配小于64的值。

51学通信的博客 1294

描述符链表(Descriptor Chain)是什么?

描述符链表是硬件加速数据传输的核心数据结构,通过链式描述符(包含地址、长度、控制标志等)实现DMA自动批量处理,显著降低CPU负载。其工作原理为:CPU初始化链表后,硬件按序处理每个描述符,完成自动跳转与中断通知。在网卡收包、NVMe存储等场景中应用广泛,优势包括批处理、低延迟和灵活调度。需注意内存对齐、缓存一致性等实现细节,优化手段包括预分配描述符池、环形缓冲区等。该技术是网络/存储领域提升吞吐量的关键方案。

guigenyi的专栏 773

面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)

Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...

程序员追风的博客 21万+

吊打原版YOLOv8!ASF-YOLO多尺度融合+注意力机制实战解析(遥感/医疗/质检均适用)

ASF-YOLO融合YOLOv8的创新目标检测框架摘要 ASF-YOLO是针对小目标检测优化的先进框架,采用三重特征编码器和尺度序列融合技术增强多尺度特征提取能力。核心创新包括: 三重特征编码器(TPE)融合跨层级信息 尺度序列特征融合(SSFF)模块通过3D卷积处理多尺度信息 通道-位置注意力机制(CPAM)聚焦关键特征区域 Zoom_cat模块实现自适应多尺度特征融合 该框架特别适用于医学影像、遥感检测等小目标密集场景,通过动态特征权重调整显著提升检测精度。关键技术实现包含多尺度特征统一、3D卷积序列处

FJN110的博客 526

深度解析双十一背后的阿里云 Redis 服务

在一片欢呼之中,2018年的双十一完美收官,各项数据不出意外的刷出了新的记录,亮眼的数据背后是阿里过硬的技术支撑。其中阿里云Redis不仅保障了阿里集团内部业务双十一的流量洪峰平稳度过,也让使用阿里云Redis的各个客户度过了一个安稳省心的双十一。 目前阿里云Redis涵盖了丰富的产品形态:主从、集群、读写分离、同城容灾、异地多活,可以选择单副本,双副本,还有混合存储类型。 主从规格的Re...

阿里云云栖号 1234

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Redis】Redis常见问题及其处理策略

Redis稳定性保障:核心指标与常见问题处理 Redis资源稳定性保障需重点关注CPU、内存、QPS、磁盘和连接数等核心指标。常见问题及处理策略包括: QPS与CPU问题:平稳增长时可通过扩容集群或提升单实例规格解决;突发流量需排查热点Key或临时扩容。 连接数问题:采用Proxy收敛连接或优化连接池参数,防止连接打满。 内存问题:合理设置Key过期时间、选择淘汰策略、优化数据结构和拆分大Key。 大Key处理:压缩Key或拆分Value,必要时转存至对象存储。 热点Key问题:通过分片、本地缓存或限流等方

时光、疏离了记忆づ童话的博客 1195

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

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

redis常见问题

• 缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致 DB 挂掉。这种情况大概率是遭到了攻击。• 解决方案的话,我们通常都会用布隆过滤器来解决它。• 布隆过滤器主要是用于检索一个元素是否在一个集合中。我们当时使用的是redisson实现的布隆过滤器。• 它的底层主要是先去初始化一个比较大数组,里面存放的二进制0或1。

zybiao2的专栏 1606

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Yii 2 Redis 扩展常见问题解决方案

Yii 2 Redis 扩展常见问题解决方案 项目基础介绍 Yii 2 Redis 扩展是为 Yii 框架 2.0 提供的 Redis 支持扩展。它包括 Redis 缓存、会话存储处理程序,并实现了 ActiveRecord 模式,允许用户在 Redis 中存储活动记录。该项目主要使用 PHP 语言编写,适合需要在 Yii 2 框架中集成 Redis 的开发者使用。 新手使用注意事项及解决方案 1...

gitblog_00368的博客 841

Redis 7.2.4 在 Ubuntu 24.04 上的完整安装教程及常见问题解决

本教程详细介绍了在Ubuntu 24.04系统上安装Redis 7.2.4的完整步骤。包括系统更新、创建数据目录、安装编译依赖、下载源码、编译安装等过程。重点讲解了Redis配置文件的关键设置(数据存储路径、IP绑定、密码设置等)以及systemd服务配置。针对安装过程中可能遇到的PID文件问题、权限问题和端口占用问题提供了具体解决方案,并给出了验证Redis安装是否成功的方法。通过本教程,用户可以顺利完成Redis的安装,并确保其稳定运行。

oTheworld的博客 1927

Windows 上安装 Redis 7.2 指南

Windows 上安装 Redis 7.2 指南 【下载地址】Windows上安装Redis7.2指南 本资源文件提供了在 Windows 系统上安装 Redis 7.2 的详细步骤和相关资源。Redis 是一个开源的内存数据结构存储,常用作数据库、缓存和消息代理。本指南将帮助您在 Windows 环境中顺利安装和配置 ...

gitblog_06657的博客 894

22 Redis 的常见问题 2

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

海陆云的博客 2万+

【Redis常见问题总结】

Redis(Remote Dictionary Server)是一个开源的内存数据存储系统,也可以用作缓存和消息队列代理。它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。Redis最初由Salvatore Sanfilippo开发,于2009年首次发布。数据结构存储:Redis支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等。这些数据结构使得Redis可以存储和操作各种类型的数据。内存存储:Redis的数据通常存储在内存中,这使得它具有非常高的读写速度。

weixin_47068446的博客 1048

Spring Boot 2 集成 Redis 集群详解

通过以上步骤,您已成功在 Spring Boot 2 中集成 Redis 集群。关键点包括正确配置集群节点、使用处理连接、以及自定义确保序列化。Redis 集群自动处理数据分片和故障转移,提升了应用的可靠性和扩展性。如果有更多需求(如事务处理或 pub/sub),可扩展类。建议参考Spring Data Redis 文档进一步优化。

oGuiGui12345的博客 1205

Redis常见问题

Redis之所以采用单线程模型,主要是因为它是基于内存操作的,CPU不是瓶颈。Redis的瓶颈通常是内存的大小或者网络带宽。由于Redis的高效性,即使是单线程也能够处理高达数十万级别的QPS(每秒查询率)。单线程模型有几个关键优势:1.简单性:单线程模型简化了设计和实现,避免了复杂的同步和锁机制,减少了bug的可能性。2.性能预测性:使用单线程,操作执行的顺序是确定的,这使得性能变得可预测,避免了多线程程序中的线程切换和锁竞争带来的性能开销。3.高效的利用CPU。

鹿鹿啊_ 643

腾讯云双十一薅羊毛攻略:云数据库Redis

1、腾讯云双十一“团战”腾讯云双十一拼团GO热火进行中!!!今年的腾讯云双十一活动,玩出了新花样——“百款折扣商品任意拼,双人成团PK有大礼”!这不仅仅是一场购物狂欢,更是一场充满欢笑与惊喜的“团战”!折扣商品大乱斗,省钱又刺激云计算、大数据、人工智能……各种热门商品齐聚一堂,价格更是低到让人尖叫!不论你是企业大佬还是个人小透明,这里都有让你心动的宝贝。而且,折扣力度之大,简直让人想把购物车塞满!...

Diligence is the mother of success. 1072

Redis的三大常见问题

Redis常见的三大问题

weixin_54514490的博客 916

Redis常见问题及解决方案

前面简单的讲解了下Redis的入门知识,我们使用缓存数据库的目的是让一些查询可以直接走缓存从而减轻数据库压力,但是框架中每增加一个中间件就会产生一些对应的问题,这些问题要怎么解决呢?本篇文章对Redis的一些常见问题及解决方案做一下简单的介绍,这也是面试的时候经常会被问到的题。

李永志的博客 2002
上一篇: Redis(十)--关于redis的一些常见问题
下一篇: 剑指--二叉树的镜像
想飞的盗版鱼
博客等级 码龄10年 56粉丝 243原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值