自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 QT 概述(背景介绍、搭建开发环境、Qt Creator、程序、项目文件解析、编程注意事项)

Qt是一个跨平台C++图形用户界面框架,支持Windows、Linux、macOS等系统。本文介绍了Qt的基础知识、开发环境搭建和简单应用实现。主要内容包括:Qt发展历史和版本特点、支持平台及开发工具选择;详细的环境配置步骤和Qt Creator界面解析;通过"Hello World"示例展示按钮、标签等控件的两种实现方式(纯代码和可视化设计);深入解析了项目文件结构(.pro、.h/.cpp、.ui)的作用;最后重点说明了Qt的对象树内存管理机制和窗口坐标体系。文章为Qt初学者提供了从

2025-08-29 00:00:13 866 1

原创 Redis 典型应用 —— 分布式锁

本文介绍了分布式锁的概念及其实现方式。在分布式系统中,当多个节点访问共享资源时,需要通过分布式锁实现互斥控制。基础实现思路是利用Redis等组件作为锁管理器,通过键值对记录锁状态,并引入setnx操作保证原子性。为完善锁机制,还提出了设置过期时间、校验ID、Lua脚本保证原子操作、watchdog动态续约以及Redlock算法应对集群故障。此外文章提到分布式锁可扩展实现可重入锁、公平锁等特性,但实际开发中通常使用现成库如Redisson。

2025-08-27 00:46:30 953

原创 Redis 典型应用 —— 缓存

摘要:缓存是一种将常用数据存储在快速访问位置以提升效率的技术,其核心思想是利用更快的存储介质(如内存)存储热点数据,减少对慢速存储(如硬盘)的访问。Redis作为数据库缓存可显著降低MySQL压力,通过存储20%热点数据拦截80%查询请求。缓存策略包括定期生成和实时动态更新,并采用FIFO、LRU、LFU等淘汰机制管理有限空间。需要注意缓存穿透(查询不存在数据)、雪崩(大规模缓存失效)和击穿(热点key失效)等问题,可通过预热数据、布隆过滤器、随机过期时间等方法解决。合理使用缓存能有效提高系统性能,降低数据

2025-08-26 20:33:43 625

原创 Redis 集群

Redis集群通过分片机制解决单机内存不足问题,将数据分散存储在多个主从节点组中。核心采用哈希槽分区算法(16384个槽位),在数据均匀分布和扩容效率之间取得平衡。集群搭建演示了3主6从的Docker部署方案,并详细介绍了故障转移机制(基于Raft算法)和扩容缩容操作流程。文章还对比了三种数据分片算法(哈希求余、一致性哈希、哈希槽)的优缺点,指出Redis选择哈希槽是为了兼顾数据均匀性和扩容便利性。最后简要说明了代码如何连接Redis集群,为大数据场景下的高性能存储提供了可行方案。

2025-08-26 13:07:05 988

原创 Redis 哨兵 Sentinel

Redis哨兵(Sentinel)是Redis的高可用解决方案,可自动监控主从节点状态并完成故障转移。当主节点故障时,哨兵能自动选举新主节点并通知客户端,无需人工干预。哨兵采用分布式架构,建议部署奇数个节点,通过Raft算法选举leader进行故障转移。本文详细介绍了哨兵的工作原理、部署方法(基于Docker)和选举流程,解决了主从复制模式下人工恢复的繁琐问题,显著提高了Redis系统的可用性。但哨兵不解决数据存储容量和极端情况下的数据丢失问题,这些问题需要通过Redis集群方案解决。

2025-08-25 15:46:54 1405

原创 Redis 主从复制(重点理解流程和原理)

摘要:本文介绍了Redis在分布式系统中的部署方式,重点讲解了主从模式及其工作原理。主从模式通过数据复制实现读写分离,提高读操作的并发量和可用性。文章详细说明了主从模式配置步骤、复制流程(全量复制和部分复制)、拓扑结构以及相关参数设置。同时分析了主从复制的优缺点,并指出主节点故障时需要人工干预的问题。最后给出了解决Redis主节点无法重启问题的具体方案,包括修改工作目录和权限设置。这些内容为构建高可用的Redis集群提供了实用指导。

2025-08-21 23:23:00 1127

原创 Redis 进阶 事务

Redis事务与MySQL事务对比分析 Redis事务与MySQL事务在概念上类似,都是将多个操作打包执行,但存在本质区别。MySQL事务严格遵循ACID特性,具备原子性、一致性、隔离性和持久性;而Redis事务是弱化版本,仅保证操作的连续性执行,不支持回滚机制和数据一致性检查,也没有隔离级别概念(单线程执行)。Redis事务通过MULTI开启、EXEC执行、DISCARD放弃,并支持WATCH实现乐观锁机制来监控键值变化。Redis事务设计简化是为了保持高性能,适用于需要批量操作但不要求强一致性的场景。在

2025-08-18 22:10:27 630

原创 Redis 持久化(RDB & AOF)

Redis支持RDB和AOF两种持久化机制,将内存数据存储在硬盘上避免进程退出导致数据丢失。RDB通过定期生成数据快照实现备份,支持手动和自动触发,但存在数据实时性不足的问题;AOF通过记录每个写命令保证数据实时性,但文件体积较大。Redis采用fork子进程方式执行持久化操作,同时通过内存缓冲区减少IO操作频率。AOF还支持文件重写来压缩体积。两种机制各有优劣:RDB恢复速度快但实时性差,AOF实时性好但恢复较慢。实际应用中,当AOF开启时优先使用AOF进行数据恢复。

2025-08-16 00:13:43 1134

原创 Redis 客户端(C++ 使用样例列表)

本文介绍了C++中Redis客户端库的基本操作,重点分析了各种数据类型的命令实现和使用技巧。文章首先讲解了通用命令如get/set、exists/del、keys、expire/ttl的实现原理,特别讨论了optional类型对无效值的处理方式。然后详细介绍了string、list、set、hash、zset等数据类型的操作方法,包括mget/mset、lpush/rpush、sadd/smembers、hset/hget、zadd/zrange等常见命令。作者强调了代码设计中的解耦思想,通过迭代器实现函数

2025-08-14 14:46:41 1301

原创 Redis ubuntu下载Redis的C++客户端

摘要:本文介绍了如何在Ubuntu系统上安装和使用redis-plus-plus C++库操作Redis。首先需要安装依赖库hiredis和CMake,然后通过源码编译安装redis-plus-plus。文章提供了简单的HelloWorld示例代码,展示了如何连接Redis服务器、执行PING命令以及设置/获取键值对。最后说明了编译时需要链接的库文件路径(redis++静态库、hiredis静态库和线程库),并提示用户可以通过find命令查找本地库文件路径。注意编译时需要指定C++17标准(若不支持可降级至

2025-08-13 21:30:22 599

原创 Redis Redis 常见数据类型(Set、Zset、渐进式遍历、数据库管理)

本文介绍了Redis中的集合类型(Set)和有序集合类型(Zset)及其应用场景。集合类型具有无序、不可重复特点,支持交集、并集、差集等操作,适用于标签系统、共同好友统计等场景。有序集合通过分数(score)维护元素排序,支持范围查询、排名等功能,常用于排行榜系统。文章详细讲解了两类集合的常用命令、内部编码(如ziplist、skiplist)及使用规范,并对比了其与列表类型的区别。此外,还介绍了渐进式遍历(SCAN)命令和数据库管理操作,强调线上环境慎用清除数据库命令。

2025-08-13 14:58:11 924

原创 Redis Redis 常见数据类型

Redis数据结构与命令摘要 Redis提供5种核心数据结构:String(字符串)、Hash(哈希)、List(列表)、Set(集合)和Zset(有序集合)。每种结构都有特定命令和使用场景: String:基础类型,支持计数命令(INCR/DECR)、批量操作(MSET/MGET)等,适用于缓存、计数和会话共享场景。 Hash:键值对集合,适合存储对象属性(如用户信息),通过HSET/HGET等命令实现高效字段操作。 List:有序可重复元素集合,支持双向操作(LPUSH/RPOP),可模拟队列/栈,应用

2025-08-06 14:59:47 1164

原创 Redis 初识Redis

Redis是一种基于内存的高性能键值数据库,支持多种数据结构(字符串、哈希、列表等),具备读写速度快(10万/秒)、持久化、主从复制、集群等特性。广泛应用于缓存、排行榜、计数器等场景。Redis由Salvatore Sanfilippo开发,被Twitter、微博等大型公司使用。其版本迭代不断优化功能,如6.0引入多线程IO,7.0改进AOF存储方式。Redis通过内存存储保证高性能,同时支持数据持久化到磁盘,还提供丰富的客户端语言支持,是开发现代分布式系统的关键组件之一。

2025-08-01 14:06:41 911

原创 Mysql 图形化界面

摘要:本文介绍了使用MySQL Workbench连接远程数据库的方法。首先推荐了Navicat和SQLyog等收费工具,然后详细说明如何通过MySQL官方工具Workbench进行连接:需填写服务器公网IP、端口号(可通过netstat或show variables命令查询)以及数据库用户名。重点提示远程连接存在安全风险,建议使用指定端口保障安全。连接成功后,可在左侧schemas栏查看数据库。

2025-07-29 14:14:35 289

原创 Mysql Connect -- 详解

本文介绍了使用C语言连接MySQL数据库的基本流程。首先需要下载MySQL官方提供的C接口库,并确保MySQL服务正常运行。主要步骤包括:1)使用mysql_init()初始化连接;2)通过mysql_real_connect()建立数据库连接,需注意字符集设置;3)使用mysql_query()执行SQL命令;4)通过mysql_store_result()获取查询结果并处理数据;5)最后释放资源(mysql_free_result()和mysql_close())。文章还提供了获取查询结果行列数、列名和

2025-07-29 14:00:26 693

原创 MySQL 用户管理

摘要:MySQL用户管理主要包括创建用户、设置密码策略、授权和回收权限等操作。创建用户时需指定用户名、主机和密码,可通过修改validate_password参数调整密码强度要求。root用户可为其他用户修改密码,使用grant/revoke命令进行权限管理。需要注意权限修改后需执行flush privileges刷新,且避免创建可从任意主机登录的高权限用户。通过合理配置用户权限,可有效降低只使用root账户带来的安全风险。

2025-07-27 13:12:47 887

原创 MySQL 视图

摘要:视图是基于查询的虚拟表,包含列和行数据,与基表数据相互影响。基本操作包括创建视图(简化高频查询)、修改视图/基表(数据同步影响)、删除视图。使用规则要求视图命名唯一,数量不限但需考虑性能,不能添加索引或触发器。视图可提高安全性,需足够权限,支持ORDER BY但会被查询中的ORDER BY覆盖。视图可与表联合使用,为数据访问提供便利。(149字)

2025-07-27 10:54:20 389

原创 MySQL 事务管理

摘要 本文系统阐述了MySQL事务的ACID特性及其实现原理。首先指出不加控制的CURD操作可能引发数据不一致问题,通过事务的原子性、一致性、隔离性和持久性可解决这些问题。重点分析了四种隔离级别(读未提交、读提交、可重复读、串行化)的表现差异及对应的并发问题(脏读、不可重复读、幻读)。深入探讨了MVCC机制,包括隐藏字段、undo日志和ReadView的工作原理,解释了可重复读级别如何通过版本链和可见性判断实现事务隔离。最后对比了RC和RR级别下ReadView生成时机的本质区别,说明MySQL默认RR级别

2025-07-25 17:35:15 1821

原创 位运算算法

本文总结了位运算的基本原理和常见算法实战。在算法原理部分,介绍了与、或、异或等基本位运算符,以及位操作技巧如获取某位的值、修改特定位等。算法实战部分通过5道LeetCode题目展示了位运算的应用:1)使用位图或哈希表判断字符唯一性;2)利用异或性质找出缺失数字;3)通过位运算实现加法;4)统计二进制位出现次数找出只出现一次的数字;5)结合异或和分组技巧查找两个缺失数字。这些案例展示了位运算在解决特定问题时的简洁高效特性。

2025-07-22 23:32:17 681

原创 前缀和算法

前缀和算法是一种高效处理区间查询的技术。一维前缀和通过预处理数组dp[i]=dp[i-1]+arr[i],将区间和查询优化为O(1)时间。二维前缀和则通过dp[i][j]=dp[i-1][j]+dp[i][j-1]+arr[i][j]-dp[i-1][j-1]预处理矩阵,实现快速子矩阵查询。该思想可扩展应用于多种场景:724题通过前缀和与后缀和数组寻找中心下标;238题利用前缀积和后缀积计算除自身外的乘积;560题使用前缀和+哈希表统计和为k的子数组;974题结合同余定理处理可被k整除的子数组;525题将0

2025-07-20 13:59:18 1024

原创 MySQL 索引

MySQL索引优化与B+树结构解析 摘要: 本文系统阐述了MySQL索引的工作原理及优化策略。首先指出索引通过空间换时间提高查询效率,但会降低写操作性能。其次详细分析了磁盘存储原理,说明MySQL以16KB的Page为单位进行IO交互以减少次数。重点解析了B+树索引结构:数据有序存储在叶子节点,非叶子节点仅存储键值和指针,形成"矮胖型"结构降低IO次数。对比了B树、哈希等结构的优劣,阐明B+树在范围查询和空间利用率上的优势。文章还介绍了聚簇索引与非聚簇索引的区别,以及主键、唯一、普通、全

2025-07-19 16:44:41 1310

原创 二分查找算法(一)

本文总结了力扣中8道二分查找相关题目的解题思路,包括704二分查找、34查找元素区间、69平方根、35搜索插入位置、852山脉峰值、162寻找峰值、153旋转数组最小值、LCR173点名问题。核心要点:1)二分查找适用于具有二段性的有序数组;2)处理边界条件和循环终止是关键;3)针对不同问题需设计特定比较条件(如查找左右端点、峰值判断等)。文中给出了标准二分模板,并强调对于特殊场景(如缺失值、旋转数组)需要调整查找策略。通过比较暴力解法和二分解法,突显后者O(logN)的时间复杂度优势。

2025-07-16 19:25:04 744

原创 滑动窗口算法(二)

本文解析了力扣中的四道滑动窗口算法题目:904题(水果成篮)使用哈希表记录水果种类,通过双指针维护窗口;438题(字母异位词)通过数组统计字符频率,窗口移动时更新有效字符计数;30题(串联单词)将单词视为整体进行窗口滑动,需注意起始位置处理;76题(最小覆盖子串)记录目标字符频率,当窗口满足条件时收缩寻找最小子串。四道题均采用滑动窗口思想,通过左右指针动态调整窗口大小,配合哈希表或数组统计元素,实现高效求解。

2025-07-14 10:59:42 633

原创 Python 文件操作

变量是把数据保存到内存中。如果程序重启 / 主机重启,内存中的数据就会丢失。要想能让数据被持久化存储,就可以把数据存储到硬盘中,也就是在中保存。在 Windows “此电脑” 中看到的内容都是文件:通过文件的后缀名可以看到文件的类型。常见的文件的类型如下:(数据都是保存在硬盘上的)存储器包含内存(空间更小、访问速度快、成本更高、数据易失)和外存(主要体现:硬盘(空间更大、访问速度慢、成本便宜、数据持久化存储)),变量在内存中;文件在硬盘中。下面主要研究最简单的文本文件。

2025-06-27 16:21:11 740

原创 Python 字典

摘要:字典是存储键值对的数据结构,通过键快速查找值。Python字典创建方式包括空字典{}或初始化指定键值对(key:value),key不可重复但类型可不同。支持高效查找(in/[])、新增/修改(通过[]赋值)、删除(pop方法)等操作。字典遍历可获取所有key,Python保持插入顺序。key必须是可哈希的不可变对象(如数字、字符串等)。字典基于哈希表实现,增删改查效率高,适用于键值映射场景。

2025-06-27 11:05:04 1113

原创 Python基础语法-------列表和元组

本文介绍了Python中列表和元组的基本概念、创建方式及常用操作。列表是可变序列,支持元素增删改查、切片遍历等操作,主要方法包括append、insert、pop等;元组是不可变序列,仅支持读取操作。二者核心区别在于可变性:列表元素可修改,元组创建后不可变。元组优势在于数据安全性(作为不可变对象)和可哈希性(可作字典键)。实际应用中,需要修改元素时选择列表,元素固定时优选元组。文中还详细说明了索引访问、切片操作、遍历方式等共性功能,以及列表特有的增删改方法。

2025-06-21 17:52:06 1139

原创 Python 基础语法 -----函数

本文介绍了Python函数的基本概念和使用方法。主要内容包括:1.函数定义与调用语法,通过def关键字创建函数;2.参数传递机制,包括形参与实参的区别;3.返回值的使用技巧与作用域规则;4.函数嵌套调用和递归的优缺点分析;5.参数默认值和关键字参数等高级用法。文章强调函数在代码复用、逻辑封装中的重要性,并对比了不同写法在工程实践中的适用性差异。同时,通过工厂类比形象说明了函数的输入输出机制,并提供了调试和优化的实用建议。

2025-06-21 12:58:39 903

原创 Python 基础语法(顺序语句、条件语句、循环语句)

摘要:本文介绍了Python中的基本控制结构,包括顺序语句、条件语句和循环语句。顺序语句默认从上到下执行;条件语句使用if/elif/else实现分支逻辑,强调Python独特的缩进语法和pass空语句;循环语句包括while和for两种形式,以及continue和break控制语句。文章详细说明了代码块的缩进规则和条件嵌套的注意事项,并通过实例解释了不同控制结构的使用方法和执行流程。

2025-06-13 22:07:12 868

原创 Python 基础语法

本文介绍了Python编程基础中的几个核心概念:1. 表达式与运算符:Python可进行算术运算,表达式由常量、运算符构成,支持不同类型运算规则。 2. 变量与类型:变量用于存储中间结果,命名需遵守规则;Python是动态类型语言,常见类型包括整数、浮点数、字符串、布尔等,类型决定数据操作方式。 3. 注释:单行注释用#,多行用三引号,强调准确性和可读性。 4. 输入输出:通过print输出,input获取用户输入,需注意类型转换。 5. 运算符:涵盖算术、关系、逻辑、赋值等运算符,解释运算优先级及注意事项

2025-06-13 16:51:10 1104

原创 Python 搭配Python环境

《Python开发环境搭建指南》摘要 本文详细介绍了Python开发环境的搭建步骤:1)安装Python运行环境,包括官网下载、版本选择(推荐Python3)、勾选PATH配置及验证安装;2)安装PyCharm开发工具,重点说明社区版下载、关联Python解释器及创建Hello World项目的过程;3)提供基础配置建议,如调整字体大小和行距。文章强调通过官网获取软件、注意中英文符号差异等关键细节,帮助初学者快速完成环境部署。、

2025-06-06 17:23:44 929

原创 MySQL 表的内连和外连

SQL连接查询主要包括内连接和外连接。内连接(INNER JOIN)通过WHERE子句筛选两表的笛卡尔积,是最常用的查询方式。外连接分为左外连接(LEFT JOIN)和右外连接(RIGHT JOIN):左外连接会完全显示左侧表数据,即使右侧无匹配;右外连接则完全显示右侧表数据。练习示例包括显示员工信息及部门名称,以及查询所有学生成绩(包含无成绩学生)和所有部门信息(包含无员工部门)。这些连接方式满足不同场景的数据查询需求。

2025-06-04 19:29:52 429

原创 MySQL 复合查询

本文介绍了SQL查询练习案例,包含单表查询和多表查询两部分。单表查询部分演示了筛选工资/岗位条件、排序、显示最高工资员工、部门统计等基础操作(7个案例)。多表查询部分通过emp、dept、salgrade三表示范了联合查询(3个案例),重点说明如何消除笛卡尔积。最后介绍了自连接查询方法,通过子查询和表别名两种方式实现员工领导信息查询。这些案例涵盖了SQL基础查询的核心语法,包括WHERE、GROUP BY、HAVING、ORDER BY等子句的使用。

2025-06-04 10:25:22 1034

原创 MySQL 内置函数

本文摘要:本文系统介绍了MySQL常用函数的使用方法,分为四大部分:1)日期函数(获取日期时间、时间戳计算、日期加减等),2)字符串函数(字符集获取、格式显示、字节计算、字符处理等),3)数学函数(绝对值、进制转换、取整、随机数等),4)其他函数(用户信息、加密函数、空值处理等)。每个函数都配有具体语法示例,并包含实际应用练习(如记录生日、留言查询等),帮助掌握数据库操作中的数据处理技巧。

2025-05-29 10:24:28 507

原创 MySQL 基本查询 (表的增删查改)

本文主要介绍了SQL的基本操作语句,包括增删改查四大类。在插入操作(Create)部分,讲解了全列插入、指定列插入以及主键冲突时的处理方式。查询操作(Retrieve)部分详细说明了列选择、WHERE条件、结果排序和分页显示的用法。更新操作(Update)演示了单列和多列修改以及带条件的更新。删除操作(Delete)介绍了delete和truncate的区别。此外还讲解了聚合函数、GROUP BY分组、HAVING筛选以及SQL语句执行顺序等重要概念。全文通过丰富示例演示了各语句的用法和注意事项,为数据库操

2025-05-27 15:09:21 892

原创 MySQL 表的约束

本文介绍了MySQL中几种常见的约束条件及其应用场景。主要内容包括:非空约束(NOT NULL)确保字段不为空;默认值约束(DEFAULT)为字段设置默认值;列描述(COMMENT)用于字段说明;零填充(ZEROFILL)格式化数字显示;主键约束(PRIMARY KEY)保证记录唯一性;自增长(AUTO_INCREMENT)实现自动编号;唯一键约束(UNIQUE)确保字段值不重复但允许为空;外键约束(FOREIGN KEY)建立表间关联关系。这些约束共同作用,保障数据的完整性和业务逻辑的正确性,其中主键和唯

2025-05-26 11:42:52 1136

原创 MySQL 数据类型

文章主要介绍了MySQL中的数据类型及其特性。数值类型包括整型(如tinyint、bit)和小数类型(如float、decimal),其中整型可以指定有符号或无符号,小数类型则涉及精度和范围的问题。字符串类型包括定长(char)和变长(varchar)两种,选择依据是数据的长度是否固定。日期和时间类型如date、datetime和timestamp,分别用于存储日期、日期时间及时间戳。此外,还介绍了枚举(enum)和集合(set)类型,用于存储预定义的选项值。文章强调了数据类型在数据库设计中的重要性,合理选

2025-05-22 12:00:25 868

原创 MySQL 库的操作

本质就是在 /var/lib/mysql 创建一个目录。

2025-05-19 10:42:53 1182

原创 MySQL 数据库基础

数据库是一种专门用于存储、管理和操作数据的系统,相较于普通文件,数据库在数据管理、安全性、查询效率和海量数据处理方面具有显著优势。文件存储存在安全性低、查询不便、管理困难等问题,而数据库通过结构化存储和高效查询机制解决了这些问题。常见的数据库包括MySQL、Oracle、SQL Server等,其中MySQL因其并发性好、易用性强而广泛应用于电商、社交等领域。数据库的核心功能包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)。MySQL采用客户端-服务器架构,支持多种存储引擎

2025-05-14 14:27:53 970

原创 C语言模糊不清的知识

\为一个转义字符算1个字节,123456算6个字节,\123是一个八进制的转移字符算1一个字节,剩下的456\t算4个字节,总共是12个字节。用于创建类型别名的关键字,仅定义类型别名,不分配内存。这是编译器的行为,有类型的检查,作用域受限。malloc底层实现:是调用系统的接口,小内存块利用堆扩展高效管理,大内存用mmap,减少碎片。static修饰的全局变量的链接属性为内部链接,仅限当前文件可见,禁止跨文件访问。数组名是以单个元素为单位,&数组名是以整个数组为单位,他们的数组首地址相同。

2025-05-10 16:27:54 1067

原创 MySQL 在Centos7环境安装MySQL

卸载内置环境说明:安装与卸载中,⽤⼾全部切换成为root,⼀旦 安装,普通⽤⼾能使⽤的。

2025-05-08 15:21:32 2799 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除