兜兜转转,Bytebase GitHub 星星终破万!

数据库 CI/CD 工具 -- Bytebase 介绍 在本文中,我们首先向读者展示了 Bytebase 的安装部署过程,以及其查询和更改的基本功能。接着,我们体验了 Bytebase 1.14.0 最新版本所带来的 ChatSQL 功能,该功能基于 OpenAI,能够根据我们的问题或需求生成相应的 SQL 语句。最后,我们实践了 Bytebase 的 GitOps 功能,通过结合版本控制系统,可以跟踪数据库结构的变化,方便我们对数据库变更进行审查、协作和回滚操作。 阅读详情

2024 年 4 月 24 日,Bytebase 迎来了又一个里程碑:GitHub 星星数 🌟 突破了一万。🎉🧨🥁

file

file

这是 10000🌟 的贡献者

file

距离 Bytebase 0.1.0 版发布已经过去了两年多。作为一个开源项目,Bytebase 的发展速度远超国际上业界老牌数据库变更管理工具 Liquibase 和 Flyway,以及国内的 SQL 审核工具 Archery 和 Yearning,如今也成为这个领域唯一破万的项目!🚀

file

此外,企业版在 2023 年度全球续约率 100% ,2024 年我们也在收获更多来自本土及海外新的客户,例如:Bytebase 签约极氪,规范数据库访问,提升跨国团队协作效率,确保数据合规。

又如:终于,我们拿下了硅谷的那个 Linear,通过 Bytebase 收口员工查询数据库操作,通过 Bytebase API 将数据库变更集成进现有工作流。

我们的初心不变:打造一个一站式平台,负责各种不同数据库的变更、查询、安全和治理。将类似 GitLab / GitHub 的代码管理和开发体验带给研发、DBA和平台工程团队。

file

继续冲鸭 🐥


💡 更多资讯,请关注 Bytebase 公号:Bytebase

Bytebase 2.0 - 把 DevOps 带进数据库 近期 AI 领域的突破让大家都很兴奋,但回到日常的工作中,开发者们还是需要处理许多的琐事。其中之一就是和数据库打交道,一件繁琐但又需要格外仔细的工作,不然就容易造成 #删库跑路 的事故。2 年前,我们启动了 Bytebase 来解决这个问题,并且把项目开源在了 GitHub 上。相比于全球范围内的友商 Liquibase,Flyway,还是国内的 Yearning,Archery,Bytebase 的增长速度也都是更快的。 阅读详情

相关推荐

数据库管理审计工具Bytebase快速部署

Bytebase 是一个开源数据库 DevOps 工具,它是用于在整个应用程序开发生命周期中管理数据库的 GitLab/GitHub。由于 GitLab/GitHub 为团队提供了 GUI 和协作工作区来管理代码,因此 Bytebase 在管理数据库方面也做了类似的工作.

weixin_44151123的博客 1364

如何使用 Bytebase 快速实现 SQL 自动化

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !​数据库在每个企业都占据的非常重要的位置,它存储着一个公司的命脉。对于数据库的管理也非常的复杂多变,很多公司都有专业的DBA团队在管理。但是,不论有无DBA,对数据库的操作都不会变少,而且都面临着相同的问题:不是在提数就是在修数的路上不是在审核SQL就是在审核SQL的路上不是在找历史记录就是在找历史记录的路上不是在备...

easylife206的专栏 2674

基于宝塔的 Bytebase 可视化安装、配置、部署教程

Bytebase是一款使用Go语言开发的开源数据库管理软件,旨在为DBA(数据库管理员)、开发人员和平台工程师提供一个基于Web的协作工作区,用于管理数据库的整个生命周期。本文将介绍如何在宝塔面板上可视化安装、部署、配置Bytebase教程。

Bytebase的博客 1199

Bytebase试用与对比

简介 官网介绍:Bytebase 是为 DBA 和开发人员进行数据库表结构 (schema) 变更而设计的团队协作工具。用户可以通过一个工作流 (pipeline),来推进 schema 在多个环境中的变化。同时用户也可以把 schema 保存在 VCS 中 ,再由新的 schema 文件提交来触发工作流。 由前Google和前蚂蚁员工创立的,刚刚首轮融资300万美元,此类软件之前使用过navicat,treesoft,Yearning,阿里内部的idb,阿里云的DMS,还有我在公司云原生数据库平台上自研

zhangjikuan的专栏 1万+

用 Bytebase 实现批量、多环境、多租户数据库的丝滑变更

现在,你已学会如何使用部署配置和数据库分组在 Bytebase 中运行批量更改。动手试试吧!💡 更多资讯,请关注 Bytebase 公号:Bytebase。

Bytebase的博客 1992

Bytebase 3.5.0 - 手动发布功能调整至社区版

新安装 https://www.bytebase.com/docs/get-started/self-host/升级 https://www.bytebase.com/docs/get-started/upgrade/弃用慢查询、多租户功能;弃用原有的内置 GitOps 功能,并改进 GitOps 工作流。在工单创建之前可以查看到来自 SQL 检查结果的预估影响行数。扩展 API 以允许更新 Plan 的数据库分组部署。API 支持分页和过滤。,使其仅适用于现有表和。

Bytebase的博客 688

Bytebase:一款开源的数据库管理软件

总的来说,Bytebase作为一款开源、易用的数据库管理软件,以其丰富的功能和安全性能受到了广泛的关注和应用。相信随着数据库管理需求的不断增长,Bytebase将在未来发挥越来越重要的作用,为用户提供更便捷、高效的数据库管理解决方案。在未来的发展中,Bytebase有望进一步加强与其他数据库和开发工具的集成,提供更加全面的数据库管理解决方案。随着信息技术的不断发展,数据库管理软件的需求也日益增长。未来,Bytebase将继续致力于提供更加丰富和便捷的数据库管理功能,满足用户对数据库管理的不断变化的需求。

LuLaaa_的博客 963

STM32基于软件模拟IIC进行AHT21B温湿度采集

通过学习软件IIC来进行实操AHT21B采集温湿度。

Liu-FE的博客 3700

Bytebase:让数据库管理和协作变得无缝

到这里,我要说一下这段时间Bytebase使用下来的感受,这款工具是唯一被收录的产品。技术背景和实力都挺靠谱的,具备海外和国内工作经验,视角更加全面,目前已经有很多公司在进行相关落地。在云原生的今天,传统的 DB 管理工具对云原生场景下很难提供更为全面的治理能力,对于开发人员来说,更希望像管理代码一样管理 SQL,这就引入了Bytebase的GitOps实践。传统 SQL 和代码是分离的,对于管理人员需要对他们进行两套不同的管理模式,这带来了一定的管理成本和出错可能性。

口中冰的博客 802

从零到一:RK3588嵌入式开发中的SDK与MPP集成实战解析

本文详细解析了RK3588嵌入式开发中SDK与MPP(Media Process Platform)的集成实战,涵盖开发环境构建、SDK架构解析、MPP集成关键技术点及常见问题诊断。通过Qt5.12.10交叉编译环境配置和硬件加速优化,帮助开发者高效完成嵌入式视觉项目开发,特别适合边缘计算应用场景。

weixin_29189381的博客 512

Crazyflie 2.1固件刷写与地址配置全攻略:从开箱到连接Crazyswarm

本文详细介绍了Crazyflie 2.1微型无人机的固件刷写、地址配置及与Crazyswarm系统的集成方法。从开箱检查到多机协同飞行,涵盖了硬件准备、固件刷写、无线电地址修改等关键步骤,帮助用户快速实现集群飞行控制。特别针对Crazyswarm系统集成提供了实用配置示例和调试技巧。

weixin_42530458的博客 405

Bytebase 突破百万下载!

在过去的两年中,Bytebase 的用户群体已经扩大到全球各地,包括南美洲的中央银行、中东的电子商务平台、东南亚的电信集团、非洲的支付网关、欧洲的电子邮件提供商,甚至是美国一家害虫控制供应商,我们的影响力甚至延伸到了遥远的斐济群岛!我们的初心不变:打造一个一站式平台,负责各种不同数据库的变更、查询、安全和治理。作为数据库即代码(database-as-code)方法论的开创者,Bytebase 也是 X as Code 类目下增长最快的开源项目之一。,免费注册云账号,立即体验 Bytebase。

Bytebase的博客 649

SAP成本控制范围配置全流程:从货币参数到标准层次(附2024最新SPRO路径)

本文详细拆解了SAP成本控制范围(Controlling Area)的完整配置流程,涵盖从货币与估价参数文件定义、参数文件分配到控制范围,再到成本中心标准层次创建等核心步骤。文章提供了2024年最新的SPRO导航路径和实战配置要点,帮助顾问构建稳健、可扩展的管理会计基础架构,并附有常见问题排查指南。

java5的博客 940

Bytebase数据库 Schema 变更管理工具

Bytebase是面向DevOps团队的基于 Web 的、零配置、无依赖的数据库架构更改和版本控制管理工具。

每天都要开心呀(#^.^#) 2189

WIFI信号状态信息 CSI 特征提取篇之活动片段提取(五)

本环节是特征提取环节,起承上启下的作用:对上,应着数据处理完毕的信号,但是还不能直接进行分析,因为此时信号片段过长,对于活动识别而言,存在非许多目标片段(例如失败不规范的动作、休息间歇等);对下,具体采取何种活动片段提取策略,需要配合后续采取的活动识别算法进行(深度学习/机器学习,CNN/RNN/LSTM等等),不同的算法适配不同的数据形式,例如CNN一般用于识图,不需要关注时间顺序,LSTM则要求保留时间关系等等,所以本博客后续仅介绍几种分类思路。

Silver_777的博客 4541

XVF3800麦克风阵列实战:从选型到快速原型搭建

本文详细介绍了XVF3800麦克风阵列的选型与快速原型搭建实战经验。从开箱即用的特性到波束成形、回声消除等核心功能拆解,再到硬件设计避坑指南和固件开发技巧,帮助开发者高效实现智能语音设备的开发。特别适合智能音箱、会议终端等需要远场拾音和声源定位的应用场景。

weixin_29161719的博客 274

浅谈ByteBase

Bytebase的使用十分简单,在这里给出如何使用Bytebase创建工作流的步骤: 1.首先,你需要在Bytebase中创建一个项目,并将你的数据库和数据库服务器添加到项目中。在此之前,你需要进行数据库管理员和项目管理员的登录。 2.确认数据库连接成功后,你可以在Bytebase项目中管理数据库的各种对象,例如数据库表、列、索引、外键等。在需要对数据库进行修改时,你可以创建工作流。 3.点击“创建工作流”按钮,在弹出的窗口中输入工作流的名称和描述等基本信息,并选择需要执行的操作。

ruiqianyun2010的博客 1722

基于OFDM的实时图像传输系统MATLAB仿真:MPSK与MQAM调制性能对比与误码率分析

本文详细介绍了基于OFDM的实时图像传输系统在MATLAB中的仿真实现,重点对比了MPSK与MQAM调制方式的性能差异与误码率分析。通过搭建OFDM系统模型,探讨了QPSK和16QAM在不同信道条件下的表现,包括频谱效率、抗噪能力和误码率等关键指标。文章还提供了MATLAB代码示例和实用技巧,帮助读者快速掌握OFDM图像传输系统的核心算法与优化方法。

weixin_29064009的博客 355

bytebase 使用

数据库 CI/CD 工具 -- Bytebase 介绍

qq_27164239的博客 2304

ArcGIS JS 态势标绘教程:直箭头(Straight Arrow)

ArcGIS JS 态势标绘教程:直箭头(Straight Arrow)。

非科班Java出身GISer的博客 709

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

扔掉 Navicat、DBeaver、DataGrip,来试试这款吊炸天的开源数据库管理工具,吹爆!...

戳下方名片,关注并星标!回复“1024”获取2TB学习资源!大家好,我是民工哥!我们做 IT 行业的,工作始终绕不开数据库,所以,一款得心应手的、好用实用的数据库管理软件也是至关重要的。前面也推荐了不少有收费、开源的软件,大家可以点击文末Tools专栏查看,好不好用,只能看使用者的使用习惯与适合不适合。今天再来给大家推荐一款号称最强的开源数据库管理软件:Bytebase!这款软件有很多功能与 ...

民工哥的博客 3780

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

使用 K8s 部署 Bytebase,快速实现 SQL 自动化

Bytebase团队把它定位成面向开发者可靠的数据库CICD,它不仅仅是数据库管理工具,更是连接开发和DBA的桥梁。它到底具有什么样的能力呢?SQL审核SQL纠错SQL编辑器GitOps备份恢复多租户管理上面仅仅是简单的部署和使用,了解基本的功能。但是目前仅仅停留在数据库管理上,如何打通Gitlab和Bytebase,本篇文章还没有实践,下篇文章补上。💡 你可以访问官网https://bytebase.com,免费注册云账号,立即体验Bytebase。

Bytebase的博客 726

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Bytebase 搭建及如何对接 ClickHouse

Bytebase 是一个数据库 CI/CD 工具,提供 SQL 审核、变更、留档、回滚等功能,本文对 Bytebase 的使用做个简要说明。

一只努力的微服务 1912

【架构】-- bytebase 项目分析

摘要: Bytebase是一款开源的数据库DevSecOps平台,整合了数据库CI/CD、安全合规与团队协作功能,支持PostgreSQL、MySQL等主流数据库。其核心优势包括GitOps集成、自动化迁移、SQL审查、数据脱敏及RBAC权限管理,适用于开发团队、DBA和安全团队。通过统一管理界面和API支持,Bytebase解决了传统工具分散、低效的问题,被CNCF收录为云原生关键项目。部署灵活(Docker/Kubernetes),社区活跃(GitHub 13k+ Stars),是企业实现数据库现代化管

欢迎来到我的博客,一起探索代码里的世界! 1464

数据库 变更和版本控制管理工具 --Bytebase 安装部署(windows 安装篇)

Bytebase 是一个现代化的数据库 schema 变更和版本控制管理工具。主要功能数据库变更管理:可以方便地进行数据库结构的变更,如添加表、修改列、创建索引等操作。通过清晰的变更流程,确保数据库的变更能够安全、有序地进行。提供可视化的界面,让开发人员和数据库管理员可以直观地看到变更的内容和影响。版本控制:对数据库 schema 进行版本管理,类似于代码的版本控制系统。可以记录每次变更的历史,方便回滚到特定的版本。支持团队协作,多个成员可以共同管理数据库的变更,确保变更的一致性和可追溯性。

小 tom的博客 3388

Bytebase技术选型:何时选择Bytebase

在数字化转型的浪潮中,数据库架构变更管理(Database Schema Change Management)已成为企业面临的核心挑战。传统的手工SQL脚本执行、缺乏版本控制、审计追踪不完善等问题,不仅降低了开发效率,更带来了严重的安全风险。 **你是否正在经历这些痛点?** - ???? 数据库变更依赖人工操作,容易出错且难以追溯 - ???? 敏感数据保护机制薄弱,合规要求难以满足 - ???? 多...

gitblog_00564的博客 959
上一篇: Bytebase 2.16.0 - 支持 Oracle 和 SQL Server DML 变更的事前备份
下一篇: MariaDB 高管再就业,帮助客户从 MySQL 迁移到 Postgres(附两者对比)
Bytebase
博客等级 码龄5年 1348粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值