- 博客(549)
- 资源 (42)
- 问答 (1)
- 收藏
- 关注
原创 获取服务器指标的信息
本文展示了两段Linux服务器监控脚本(KB版和MB版),用于获取系统性能指标。脚本功能包括:获取服务器IP和CPU核数;监测CPU使用率(用户空间、内核空间、空闲、I/O等待);统计CPU中断和上下文切换次数;获取CPU负载(1/5/15分钟)和任务队列长度;监控内存使用情况(物理内存和swap分区);以及磁盘I/O统计(读/写请求次数、队列长度、CPU占用)。MB版主要区别在于内存和swap数据以MB为单位显示,且磁盘I/O统计使用不同命令参数。这些脚本为系统管理员提供了全面的服务器性能监控工具。
2025-08-27 22:15:34
190
原创 MAC 设置输入法
摘要:本文介绍了一种另类的键盘设置方法,通过删除不用的输入法只保留常用输入法,探讨了这种设置是否等同于默认输入法的问题。该方法简化了输入法切换流程,但与传统默认输入法概念有所不同。
2025-08-19 18:08:20
237
原创 Redis的分布式协议和一致性特性
Redis Cluster实现了分布式协议,采用Gossip协议通信,支持数据分片和故障检测,提供最终一致性而非强一致性。其节点数量理论限制为16384个slot(建议不超过400节点),使用hash slot分片数据。与其他分布式系统相比,Redis Cluster具有高性能但缺乏强一致性保证。适用于缓存、大规模存储等读多写少场景,但不适用于需要强一致性或超大规模部署的情况。替代方案包括Proxy-based方案(如Codis)或其他分布式KV存储(如etcd)。总体而言,Redis Cluster是有效
2025-08-03 16:52:41
462
原创 如何在不停机的情况下,将MySQL单库的数据迁移到分库分表的架构上?
本文介绍了MySQL单库迁移到分库分表架构的几种不停机方案:1)双写方案通过应用层同时写入新旧库,但需处理分布式事务;2)CDC方案基于binlog同步数据,对业务影响小但配置复杂;3)影子表方案在原库创建分表并使用触发器同步,仅适用于分表场景;4)Vitess等专业工具提供透明迁移能力。迁移时需重点关注数据一致性验证、性能监控、回滚方案和业务影响评估。建议根据业务特点选择合适方案,避免过度设计,确保迁移平稳进行。
2025-08-03 16:47:07
607
原创 Redis 存在哪些问题
Redis作为内存数据库存在诸多限制:内存消耗大且容量受限,持久化机制可能导致数据丢失或性能下降;集群模式存在事务和扩展性限制,单线程模型影响CPU利用率;运维复杂,备份恢复困难;数据结构简单,安全性薄弱,且总体拥有成本高。常见问题包括缓存雪崩、穿透和击穿。虽然存在这些缺陷,但可通过集群部署、合理配置持久化策略、实施监控告警等措施缓解。使用Redis需权衡其性能优势与潜在问题,针对具体场景采取相应优化方案。
2025-07-31 21:58:52
619
原创 内存网格、KV存储和Redis的概念、使用场景及异同
摘要:内存网格(IMDG)、KV存储和Redis都是基于内存的键值存储技术,但各有特点。IMDG适合企业级大规模应用,支持分布式事务和强一致性;KV存储结构简单,易于扩展;Redis支持多种数据结构,适合中小型应用。三者都提供高性能数据访问,但在架构复杂度、扩展性、事务支持等方面存在差异。选择时应根据业务规模、一致性需求、数据结构和成本等因素综合考虑,IMDG适合大型分布式系统,KV存储适合简单扩展场景,Redis则适用于高速缓存和实时应用。
2025-07-31 21:15:06
740
原创 数据库的隔离级别和mysql的隔离级别
数据库隔离级别是控制并发事务数据可见性的机制,SQL标准定义了4种级别(读未提交、读已提交、可重复读、串行化),隔离级别越高一致性越强但性能越低。MySQL默认采用可重复读级别,InnoDB引擎通过MVCC和间隙锁解决了幻读问题,比标准实现更优。与Oracle等数据库不同,MySQL在默认级别下已能较好平衡一致性与性能,多数场景无需调整,仅高一致性需求时可选串行化。使用时可通过SQL语句查看和修改隔离级别配置。
2025-07-31 21:08:00
582
原创 从MySQL的information_schema系统数据库中获取表的元数据信息
注意:table_rows字段显示的是MySQL优化器估算的近似行数,可能与实际行数略有差异。从MySQL的information_schema系统数据库中获取表的元数据信息。将数据大小和索引大小以MB为单位显示,并保留两位小数。筛选出'、global'数据库中的'menu'表。显示该表的基本信息,包括记录数和存储空间占用情况。
2025-07-27 16:41:22
342
原创 MySQL 中 VARCHAR(50) 和 VARCHAR(500) 的区别
MySQL中VARCHAR(50)和VARCHAR(500)的主要区别在于:长度限制和存储开销。VARCHAR(50)最多存储50字符,长度前缀1字节;VARCHAR(500)最多500字符,前缀2字节。性能方面,VARCHAR(500)可能消耗更多内存并可能超出索引限制(UTF-8编码时)。设计建议合理预估长度,避免过度分配,启用严格模式防止数据截断。选择时应权衡业务需求和性能影响。
2025-07-26 15:29:21
328
原创 面条式代码(Spaghetti Code)
摘要 面条式代码(Spaghetti Code)指结构混乱、逻辑不清的编程风格,其特点是缺乏模块化、控制流复杂、函数过长等。这种代码会导致可读性差、维护困难、调试复杂等问题。为规避面条式代码,应遵循单一职责原则、使用设计模式、模块化设计等方法。通过Java代码示例对比可见,重构后的清晰代码通过分解方法、使用异常处理等手段提升了可读性和可维护性,避免了深层嵌套和混杂逻辑。良好的代码结构对软件开发至关重要。
2025-07-26 15:28:11
666
原创 Kubernetes (k8s)、Rancher 和 Podman 的异同点分析
摘要: Kubernetes(k8s)是核心容器编排系统,适合企业级大规模应用管理;Rancher是Kubernetes管理平台,提供图形化多集群管理;Podman是轻量级容器引擎(无守护进程),适合本地开发或高安全场景。三者定位不同:Kubernetes侧重编排,Rancher简化集群管理,Podman专注单机容器运行。选择取决于需求规模——大规模集群用Kubernetes+Rancher,轻量级场景用Podman。
2025-07-19 00:00:00
456
原创 MySQL 的 `EXPLAIN` 输出中,`filtered` 属性使用
摘要:两个SQL查询的执行计划差异主要体现在filtered属性数值上,该属性表示WHERE条件过滤后的预估行百分比。数值越小说明过滤更精准,性能更好。优化建议包括:添加合适索引(如组合索引(start_time, end_time))、优化SQL写法、减少扫描数据量等。通过提升filtered效率可改善查询性能,重点关注rows和filtered数值降低情况。
2025-07-13 19:23:27
642
原创 idea 关闭代码格式化以及 git 提交前的代码格式化
2 . 找到 settings -> Code style -> Formatter。3. 选择 git commit 提交记录 ,找到设置。【Perform Code analysis】:代码检查。最后,我们在提交代码的时候,就会关闭代码检查,以及关闭。方便领导 code review 的时候,更舒服一些。【Reformat Code】:格式化代码。1. 为啥要关闭代码格式化呢?
2025-07-13 15:21:20
395
原创 代码已经合并到master,此时进行 revert 后, 再次进行Pull Requests 发现之前的代码丢了,如何进行恢复提交
【摘要】在代码上线过程中遇到已revert的代码无法再次合并的问题。原因在于Git是通过节点而非内容判断合并状态,即使revert撤销了代码提交,该记录仍存在于master历史中。解决方案是在Bitbucket中找到原revert记录,对其再次执行revert操作,系统会生成新分支(revert-pr-489),将该分支合并到目标分支即可恢复代码。需注意:revert是通过新commit恢复旧commit,若后续提交修改了相同内容会产生冲突。关键结论:1)Git合并判断基于节点而非内容;2)解决代码丢失问题
2025-07-06 17:14:40
355
原创 MySQL GROUP_CONCAT函数实现列转行
MySQL 提供 GROUP_CONCAT 函数将一列数据合并为用逗号分隔的字符串。基础用法为 SELECT GROUP_CONCAT(column_name) FROM table,可添加 SEPARATOR 指定分隔符,配合 GROUP BY 分组合并。需注意默认长度限制 1024 字节,可通过 SET SESSION group_concat_max_len 调整。支持 DISTINCT 去重和 ORDER BY 排序,适用于数据导出、标签生成等场景。
2025-07-05 19:49:09
299
原创 redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
Redis连接失败异常分析 摘要:系统日志显示Redis连接失败,主要报错为"Could not get a resource from the pool",根本原因是"Connection refused"。问题可能源于:1)Redis服务未启动或网络不可达;2)Jedis连接池配置不合理;3)网络问题或DNS解析失败;4)Redis服务器过载拒绝连接。建议解决方案包括:检查Redis服务状态、测试网络连通性、优化Jedis连接池配置(如增大maxTotal参数)以
2025-06-30 20:51:36
273
原创 Failed opening the RDB file dump.rdb ... for saving: No space left on device
Redis日志显示磁盘空间不足导致持久化失败。日志中显示Redis因300秒内100次修改触发RDB快照保存,但无法写入dump.rdb文件(No space left on device)。建议:1)清理磁盘空间;2)调整redis.conf中save配置减少持久化频率;3)更换存储路径;4)考虑启用AOF持久化。需及时处理以免影响Redis正常运行。
2025-06-29 17:01:06
304
原创 什么是轻量级目录访问协议(LDAP)身份验证?
LDAP是一种用于查询企业和人员数据的协议,通过将信息存储在LDAP目录中,并对访问用户进行身份验证来保证数据安全。它采用"绑定"操作验证用户凭据,支持简单认证和SASL等机制。LDAP服务器可存储用户凭证、组信息等,实现集中式身份管理,广泛应用于企业网络和云服务。
2025-06-29 16:43:43
208
原创 在 Bitbucket 控制台中手动添加tag
在Bitbucket中创建tag的步骤:1) 进入项目Repositories菜单,查看Commits记录;2) 点击目标Commit记录,在界面右下角选择tags;3) 点击Create tag,填写信息后完成创建。操作简单快捷,适用于版本标记需求。
2025-06-22 17:40:07
236
原创 mysql查询使用`_rowid` 虚拟列
MySQL的_rowid虚拟列可用于查询InnoDB表的内部行ID,特别适用于无主键的表。通过SELECT _rowid, t.*可查看行ID和所有数据。使用时需注意:仅支持InnoDB表;有主键时指向主键列;无主键但有唯一非空整数列时指向该列;否则显示不稳定的内部ID。建议显式定义主键而非依赖_rowid,因其可能随数据重组变化。替代方案包括MySQL 8.0+的ROW_NUMBER()函数或变量模拟行号。最佳实践是始终定义主键避免依赖内部实现。
2025-06-21 00:00:00
409
原创 MySQL 根据时间自动创建分区脚本
本文展示了MySQL按时间分区表的自动化管理方案。首先创建一个以created_at字段分区的表,通过存储过程auto_manage_partitions自动维护分区:1)检查现有分区;2)提前创建未来指定天数(如90天)的分区;3)可扩展旧分区删除功能(示例中被注释)。最后设置每月执行的事件manage_partitions_event来自动调用该存储过程。这种方案适用于时间序列数据管理,能有效提升大表查询性能并简化维护工作,通过事件调度器实现全自动分区维护。
2025-06-15 17:57:08
282
原创 EXCEL破解VBA密码 ( 仅供学习研究使用)
这篇文章介绍了如何破解Excel VBA工程密码的方法。具体步骤包括:1) 将.xlsm文件扩展名改为.zip并解压;2) 找到vbaProject.bin文件,用Notepad++将"DPB"修改为"DPx";3) 重新压缩文件并改回.xlsm扩展名;4) 进入VBA工程后,通过工程属性取消密码保护或设置新密码。这个方法通过修改二进制文件的关键字来绕过密码验证,适用于忘记VBA密码的情况。
2025-06-15 14:15:05
1671
原创 liquibase 集成 pt-online-schema-change
本文介绍了如何在Liquibase中集成Percona的pt-online-schema-change工具实现零停机的数据库表结构变更。主要内容包括:1) 环境准备,确保安装Percona工具包并配置必要权限;2) 通过Liquibase的SQL标签直接调用pt-online-schema-change执行表结构变更操作;3) 提供增删改列和索引的具体XML示例;4) 注意事项和可选的自定义扩展开发方案。该方法适用于需要在线变更生产环境数据库的场景,但需注意安全性和日志记录问题。
2025-06-14 00:00:00
1552
原创 Springboot 基于MessageSource配置国际化
摘要:本文介绍了Spring Boot国际化(i18n)的配置与实现方式。通过代码和YML两种方式配置MessageSource和LocaleResolver,创建中英文资源文件,并提供了测试接口。系统支持多种语言解析策略,包括URL参数、请求头和Cookie存储,默认使用中文。可通过替换LocaleResolver实现类来切换会话存储方式。测试用例展示了如何通过请求头和Cookie设置语言环境获取对应语言的响应内容。该方案具有良好的扩展性,能满足国际化需求。
2025-06-08 16:36:38
423
2
原创 The dependencies of some of the beans in the application context form a cycle
Spring应用启动失败,报错显示Bean之间存在循环依赖问题。关键错误信息指向getDataSource方法定义的Bean形成了依赖闭环。常见原因包括构造器注入造成的循环依赖、配置类相互引用等。解决方案建议:1)重构代码检查依赖关系;2)改用Setter注入或@Lazy注解;3)手动获取Bean;4)启用debug模式查看完整依赖链。排查步骤推荐分析日志循环路径、检查数据源引用关系、使用IDE可视化依赖等。该问题可通过调整Bean加载顺序或拆分依赖来解决。
2025-06-07 17:30:37
431
原创 not loaded because @ConditionalOnProperty (spring.mvc.locale) did not find property ‘locale‘
Spring Boot应用启动失败,错误显示I18nController中找不到LocaleResolver类型的Bean。问题原因是Spring Boot默认的localeResolver Bean因缺少spring.mvc.locale配置而未被加载。解决方案:1) 在配置文件中添加spring.mvc.locale属性启用默认解析器;2) 手动定义LocaleResolver Bean(如HttpSessionLocaleResolver)。建议运行时添加--debug参数查看详细条件报告。
2025-06-07 17:22:45
179
原创 引起MySQL CPU 使用率过高常见因素和解决方案
场景建议措施CPU 高 + 查询慢优先优化 SQL、加索引CPU 高 + 并发高引入缓存、读写分离CPU 高 + 配置低调整 buffer pool、连接池CPU 高 + 锁竞争优化事务、减少锁粒度。
2025-06-07 16:37:29
1554
原创 Sentry 接口返回 Status Code 429 Too Many Requests
Sentry是一个开源错误追踪平台,实时捕获应用程序异常并提供详细上下文信息(用户设备、调用堆栈等)。支持前端、后端和移动端,具有自动异常捕获、错误聚合、性能监控等功能。可通过采样率和事件过滤控制上报频率,避免触发429限流错误。适用于需要实时监控的企业级项目,可自托管或使用云服务。常见场景包括Web应用监控、微服务异常收集和移动端崩溃追踪。
2025-06-07 16:27:49
1147
原创 提供MD5解密的网站
T007.cn是一个专注于MD5加密解密的专业网站,提供全球唯一收录8位小写字母+数字组合的MD5在线解密服务。该平台支持MD5免费在线解密、破解及加密功能,主打SOMD5解密系统,能够快速破解MD5加密字符串。网站特色包括:完整的8位数字字母组合数据库、在线实时解密、加密服务一体化。用户可通过该平台实现MD5哈希值的双向转换,既可将明文加密为MD5,也能尝试将MD5密文解密还原为原始内容。
2025-06-07 11:30:00
214
原创 Mysql的CTE 与开窗函数
MySQL 8.0及以上版本支持CTE(公共表表达式)和开窗函数。CTE通过WITH关键字定义临时结果集,可用于简化嵌套查询和递归查询。开窗函数通过OVER()子句实现分组排名、累计计算等功能,不减少查询行数。两者结合使用可提升复杂查询的可读性和性能,适用于层级查询、销售排名、累计统计等场景。递归CTE还能处理树形结构数据。这些功能使MySQL 8.0+成为处理高级分析查询的强大工具。
2025-05-31 00:15:00
710
原创 @Async 注解 走的是主线程 还是子线程呢
Spring框架的@Async注解用于异步方法执行,标记的方法将在子线程而非主线程中运行。通过创建代理对象并借助TaskExecutor线程池,该注解能实现方法调用的异步处理,提高程序响应性和性能,适用于耗时操作。使用需在配置类添加@EnableAsync,且需注意避免同类内部调用以免失效。
2025-05-31 00:00:00
365
原创 索引下探(Index Condition Pushdown,简称ICP)
索引下探(ICP)是数据库优化技术,通过将WHERE条件下推到存储引擎层执行,减少回表查询次数。其工作原理是存储引擎在读取索引时直接过滤条件,仅返回有效记录。该技术能显著降低I/O开销,提升查询性能,尤其适用于大数据量场景。MySQL(5.6+)、PostgreSQL等主流数据库均支持ICP,但需注意存储引擎限制。典型应用如联合索引查询,可通过减少服务器层过滤提升效率。开发中可通过监控工具跟踪ICP使用效果,但需注意并非所有条件都支持下推。
2025-05-24 19:05:49
451
原创 Doris ClickHouse Greenplum 对比
本文对比了Doris、ClickHouse和Greenplum三大OLAP系统的核心架构、性能特征及适用场景。Doris采用MPP架构,适合实时数仓和高并发查询;ClickHouse以超高速导入和查询见长,适合日志分析;Greenplum基于PostgreSQL,支持完整ACID事务。性能方面,ClickHouse导入速度最快(50-100w行/秒),Doris并发能力最强(1000+ QPS),Greenplum则在复杂事务处理上有优势。选型建议:实时看板选Doris,日志分析用ClickHouse,事务
2025-05-24 18:15:23
879
原创 Redis 只是解决查询快的问题,可以解决并发问题么?那系统中的高并发问题是如何解决的呢?
Redis 更多是用来解决查询效率的问题,它通过把一些热点数据,比如商品信息、库存、用户数据缓存在内存中,大大减少了对数据库的访问次数,从而提高了读写性能。所以在应对高并发的时候,系统设计通常是多方面配合的。当然,服务本身也需要做拆分,比如用微服务把不同业务模块独立出来,再加上负载均衡和多副本部署,让请求分散到多个服务实例上。所以总结下来哈,Redis 只是高并发解决方案中的一个环节,真正能支撑高并发的系统,一般都是限流、缓存、异步、服务拆分和数据库优化等手段配合起来使用的,缺一不可。
2025-05-22 20:39:26
261
原创 回表是数据库概念,还是mysql的概念?
“回表”是数据库中的一个概念,尤其在MySQL的InnoDB引擎中常见。InnoDB中,表数据按主键顺序存储,主键索引即表本身。二级索引仅存储索引列和主键值,不包含整行数据。当通过二级索引查询时,若所需字段不在索引中,数据库需先通过二级索引定位主键值,再根据主键值从主键索引中获取完整数据,这一过程称为“回表”。回表意味着无法仅通过索引获取所有数据,需返回主键索引查询完整行,增加了查询步骤。例如,查询用户表中某名字对应的邮箱,若邮箱不在二级索引中,则需回表获取。优化SQL时,应尽量减少回表操作,使用覆盖索引(
2025-05-21 20:14:17
416
原创 JAVA服务内存缓慢上涨,年轻代GC正常但Full GC频繁,如何定位?
文章分析了JVM中Full GC频繁发生的原因,并提出了可能的解决方案。首先,年轻代GC正常,说明年轻代对象回收无问题,但Full GC频繁可能由于老年代空间不足或内存泄漏导致。文章建议检查JVM参数,如堆内存分配和GC策略,并观察GC日志以监控Full GC的触发频率和老年代使用率变化。此外,通过jstat和jmap工具监控老年代内存走势和生成堆转储文件,可以帮助定位内存泄漏问题。文章还提供了特殊场景的检查清单,如元空间泄漏和堆外内存泄漏,并推荐了生产环境的JVM参数配置,以优化GC性能和减少Full G
2025-05-21 19:44:42
487
主机编号检测工具V1.57.200116.zip
2021-01-19
减肥计划表-运动打卡表,减肥计划表,减肥月度打卡表,挑战21天减肥打卡表,月度减肥计划表全年瘦身效果跟踪
2025-07-26
Editplus 4GL Progress 高亮配色方案
2024-05-29
分页 (相关搜索:数据库)
2025-08-03
将MySQL单库的数据迁移到分库分表的架构上
2025-08-03
关于#redis#的问题:设计支持动态调整的LFU缓存系统:
2025-07-17
保证消息不丢失(关键词-消息队列)
2025-05-24
关于#java#的问题:引发系统雪崩
2025-05-24
js/jquery校验图片格式,宽高,大小
2015-08-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人