首页
分类
后端开发
数据库
前端开发
学习笔记
错误合集
标签
Java
MySQL
MongoDB
Linux
IDEA
归档
海尔经典面试题
Linux清理磁盘空间
MySQL查询结果输出到文件
MongoDB数据处理
瞬间
留言板
友情链接
Java学习笔记
Java博客
累计撰写
66
篇文章
累计创建
22
个标签
累计收到
12
条评论
栏目
首页
分类
后端开发
数据库
前端开发
学习笔记
错误合集
标签
Java
MySQL
MongoDB
Linux
IDEA
归档
海尔经典面试题
Linux清理磁盘空间
MySQL查询结果输出到文件
MongoDB数据处理
瞬间
留言板
友情链接
Java学习笔记
目 录
CONTENT
以下是
陌念
的文章
2023-02-06
Sublime使用正则表达式去重
本文介绍了一种使用正则表达式进行文本处理的方法。在“Find”框中输入正则表达式 `^(.+)$[\r\n](^\1$[\r\n]{0,1})+`,用于匹配以相同内容重复出现的多行文本,其中第一行内容会被后续重复行匹配。该表达式可识别连续重复的相同行,允许中间有0或1个换行符。在“Replace”框中输入 `\1\n`,将匹配的重复内容替换为仅保留第一行并添加换行符,从而实现去除重复行、保留唯一行的功能。该方法适用于文本编辑器(如Notepad++)中的批量处理,可高效清理重复内容,提升文本整洁度。操作简单,适合处理日志、数据列表等重复结构文本。
2023-02-06
42
0
0
开发工具
软件推荐
2022-12-26
MongoDB数据处理
MongoDB 提供了两套数据管理工具:`mongodump`/`mongorestore` 用于整库备份与恢复,`mongoexport`/`mongoimport` 用于数据集的导出与导入。其中,`mongoexport` 可将集合导出为 JSON 或 CSV 格式,并支持指定字段和查询条件;`mongoimport` 则可将 JSON/CSV 文件导入数据库,支持字段映射和 CSV 头部行识别。备份时,`mongodump` 指定主机、数据库和输出目录,生成二进制备份文件;恢复时,`mongorestore` 指定主机、数据库和备份目录,可选择是否覆盖现有数据。对于认证数据库,需添加用户名、密码和认证数据库参数。这些工具适用于不同场景的数据迁移、备份与恢复操作。
2022-12-26
108
0
6
数据库
开发工具
2022-12-22
HTTP状态码
HTTP状态码是服务器在响应客户端请求时返回的三位数字代码,用于指示请求的处理结果。状态码分为五类:1xx(信息响应)、2xx(成功响应)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。常见状态码包括200(请求成功)、301(永久重定向)、404(资源未找到)和500(内部服务器错误)。状态码帮助浏览器和开发人员理解请求执行情况,优化用户体验和网站维护。例如,304表示资源未修改,可利用缓存;403表示服务器拒绝访问;503表示服务暂时不可用。通过状态码,可以精准定位问题,提升系统稳定性和响应效率。
2022-12-22
14
0
0
后端开发
前端开发
2022-12-20
优化SpringBoot项目启动时间和内存占用
作者使用Spring Cloud Alibaba搭建了包含7个微服务的项目,部署在2C4G的阿里云服务器上,采用Docker部署Spring Boot fat jar镜像。每个微服务默认占内存约500M,加上Nacos、Redis、Sentinel、RocketMQ、ELK等中间件,内存压力巨大,仅部署4个微服务便内存不足。为此,作者尝试通过JVM参数优化(如-Xms128m、-Xmx128m、-Xss256k等)将内存占用降至100~200M,但未达预期的几十M目标。经调研,作者计划采用Spring Native技术以实现更低内存占用和更快启动速度,其官方示例镜像仅50M,但构建时间较长(约2分钟),且该技术尚处快速迭代阶段,暂不推荐用于生产环境。文章未完待续。
2022-12-20
36
1
1
后端开发
2022-12-15
MySQL实用查询
本文提供了三个SQL查询语句,用于统计评分数据的不同维度。第一部分查询评分在不同分段(如90-100、85-89等)的记录总数,并单独统计未评分(rating_status=0)的记录,便于分析评分分布情况。第二部分统计最近七天内所有记录的总数,通过DATE_SUB函数计算日期范围,确保数据时效性。第三部分进一步细化,按天分组统计最近七天每天的记录数量,使用DATE_FORMAT对日期格式化并按天聚合,便于观察每日数据趋势。整体实现逻辑清晰,适用于数据监控与报表生成场景。
2022-12-15
37
0
0
数据库
2022-12-09
造了一个 Redis 分布锁的轮子,没想到还学到这么多东西!!!
本文围绕MySQL可重复读隔离级别下的数据一致性问题及Redis分布式锁的实现展开。首先,通过实际案例说明了在可重复读模式下,事务快照读可能导致Java层余额校验失效,进而引发余额为负的异常情况,强调了在更新时加条件判断(如`balance>0`)的必要性。接着,文章转向Redis分布式锁实现,介绍了使用`SET NX EX`命令原子加锁、用Lua脚本+`DEL`实现安全解锁,避免错解锁问题。通过`EVAL`和`EVALSHA`优化脚本执行效率,并结合Spring Boot实现锁操作。最后,指出了Redis分布式锁存在的缺陷:无法重入、锁超时释放、主从同步导致锁失效,建议通过守护线程延长锁时间或采用RedLock算法提升可靠性,同时预告下篇将详解可重入分布式锁。
2022-12-09
57
0
0
学习笔记
数据库
2022-12-09
MySQL可重复读,一个 P0 事故!!!
本文讲述了一起因数据库从Oracle切换至MySQL后引发的“余额多扣”生产事故。原系统在Oracle下运行正常,但在MySQL默认RR隔离级别下,由于MVCC(多版本并发控制)机制导致并发事务读取旧版本数据,出现余额不足仍被扣款的问题。核心原因在于:事务2在t5时刻使用“当前读”获取最新数据(1,900),但因事务1尚未提交,该版本对事务2不可见;事务2只能回溯至上一版本(1,1000),导致错误判断余额充足并执行扣款。在RC隔离级别下,事务2每次查询重新生成一致性视图,能读取已提交的最新数据,避免了问题。本文深入解析了MySQL MVCC、一致性视图、快照读与当前读机制,揭示了在高并发场景下数据库隔离级别与数据一致性的重要关系,强调在数据库迁移或系统重构时需充分考虑并发控制行为的差异。
2022-12-09
33
0
0
数据库
错误合集
2022-12-09
在线 yaml(yml)和 properties 互转
该页面提供在线YAML(yml)与Properties配置文件格式之间的相互转换工具,方便开发者在不同框架或系统间进行配置文件格式的快速转换。用户可通过访问指定网址(https://www.toyaml.com/index.html)进入工具界面,直接粘贴或上传文件,一键完成格式转换。页面内置嵌入式框架,支持全屏显示,用户无需下载任何软件,即可在浏览器中实时操作。该工具适用于Java、Spring、微服务等项目中常见的配置文件兼容需求,提升开发效率。整体界面简洁,操作直观,支持常见配置语法转换,是开发人员处理配置文件的实用辅助工具。
2022-12-09
22
0
0
软件推荐
开发工具
2022-12-09
基于SpringBoot拦截所有接口类及实现类中方法上面的自定义注解
本文介绍了在Spring Boot中使用自定义注解同时拦截接口方法和实现类方法的实现方案。通过定义`@Ax`注解、创建`AxMethodPointcutAdvisor`匹配切入点、实现`AxInterceptor`拦截器,并注册`DefaultAdvisorAutoProxyCreator`,实现了对注解方法的统一拦截。关键在于`DefaultAdvisorAutoProxyCreator`会自动为匹配的方法生成CGLIB代理,从而支持接口方法的拦截。测试显示,无论注解在接口或实现类上,均可成功拦截并执行前后逻辑。文章强调,接口必须有实现类,否则Spring启动会报错。该方案借鉴了“keetone”大神的思想,并提供了完整可运行的代码示例,适合在需要灵活使用自定义注解的场景中应用。(198字)
2022-12-09
23
0
0
后端开发
2022-12-09
Java-Collectors(Stream流)常用的20个方法
本文介绍了Java 8 Stream API中常用的`Collectors`工具类方法,用于对流中的元素进行收集、聚合和转换。主要内容包括:通过`toList()`、`toSet()`、`toCollection()`将元素收集为不同集合类型,其中`toSet()`自动去重;`toUnmodifiableList()`和`toUnmodifiableSet()`生成不可变集合;`counting()`统计元素数量;`minBy()`和`maxBy()`分别求最小/最大值,支持自然排序或自定义比较器;`joining()`用于拼接字符串;`averagingInt()`、`averagingLong()`、`averagingDouble()`计算平均值(返回Double类型);`summingInt()`、`summingLong()`、`summingDouble()`计算总和;`summarizingInt()`提供统计摘要(含计数、总和、最小值、最大值、平均值);`toMap()`创建Map,支持处理重复键;`partitioningBy()`按条件将集合分为两部分;`groupingBy()`实现多级分组,支持指定分组集合类型。这些方法极大简化了集合操作,提升代码可读性和效率。
2022-12-09
30
0
0
后端开发
2022-12-09
MongoDB更新修改内嵌文档操作
本文介绍了MongoDB中嵌套数据结构的更新操作。首先,通过`$`定位操作符实现对嵌套数组中特定元素的精准修改,如将“MongoDB专业指北”改为“MongoDB不专业指北”,适用于数组或对象数组场景。其次,使用`.`属性访问符更新下级文档属性,例如修改“scores.praise”的值,或结合`$`操作符更新嵌套数组中的元素。此外,文章还介绍了属性的增删操作:使用`$push`添加数组元素、`$addToSet`防止重复插入、`$pull`移除匹配元素、`$pop`删除数组首尾元素。通过这些操作符,可高效管理复杂嵌套结构数据,实现灵活的数据更新。
2022-12-09
17
0
0
数据库
2022-12-09
MongoDB使用全文检索
本文介绍了MongoDB的全文检索功能,旨在弥补传统关系型数据库(如InnoDB)在模糊查询时索引失效的缺陷。MongoDB自2.4版本起支持全文检索,支持15种语言,2.6版本后默认启用。可通过`db.adminCommand`或启动参数开启该功能。用户可对文本字段(如`post_text`)创建全文索引,使用`$text`操作符进行高效关键词搜索,如`db.posts.find({$text:{$search:"runoob"}})`。全文索引性能优于正则表达式,因后者需全表扫描。但全文索引存在限制:每次查询仅允许一个`$text`操作,不能用于`$nor`查询,且查询中使用`$text`时`hint`失效。整体上,MongoDB全文检索是实现高效模糊查询的有效方案。
2022-12-09
25
2
1
数据库
1
2
3
4
5
鄂ICP备20003961号-3