摘要: 某天收到运维线上警报,服务器内存告警,需要处理一下。此时通过浏览器打开页面,系统可以正常访问,但是有明显卡顿。为了不影响客户使用,先重启了服务释放了内存。由于该项目平时访问量并不大,因此随着程序运行内存占用率的增长比较缓慢,直到第三天才发现从原本的10%跳到了45%。初步怀疑有内存泄漏问题需要进行线 阅读全文
posted @ 2023-11-06 11:10 傅小灰 阅读(3449) 评论(4) 推荐(13) 编辑
摘要: 不好的方案 1. 先写 MySQL,再写 Redis 图解说明: 这是一副时序图,描述请求的先后调用顺序; 橘黄色的线是请求 A,黑色的线是请求 B; 橘黄色的文字,是 MySQL 和 Redis 最终不一致的数据; 数据是从 10 更新为 11; 后面所有的图,都是这个含义,不再赘述。 请求 A、 阅读全文
posted @ 2023-04-23 16:24 傅小灰 阅读(114) 评论(1) 推荐(0) 编辑
摘要: JDK自带的延时队列 把订单插入DelayQueue中,以超时时间作为排序条件,将订单按照超时时间从小到大排序。 起一个线程不停轮询队列的头部,如果订单的超时时间到了,就出队进行超时处理,并更新订单状态到数据库中。 为了防止机器重启导致内存中的DelayQueue数据丢失,每次机器启动的时候,需要从 阅读全文
posted @ 2023-04-23 16:23 傅小灰 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 索引介绍 MySQL默认的存储引擎是InnoDB,它采用B+树作为索引的数据结构。 InnoDB和MyISAM存储引擎都支持B+树索引,但是它们的数据存储结构实现方式不同。 InnoDB:B+树索引的叶子节点保存全部数据 MyISAM:B+树索引的叶子节点保存数据的物理地址 在创建表的时候,Inno 阅读全文
posted @ 2023-04-23 16:22 傅小灰 阅读(90) 评论(0) 推荐(0) 编辑
摘要: Websocket、SSE(Server-Sent Events)和长轮询(Long Polling)都是用于网页和服务端通信的技术。 Websocket是一种全双工通信协议,能够实现客户端和服务端之间的实时通信。它基于TCP协议,并且允许服务器主动向客户端推送数据,同时也允许客户端向服务器发送数据 阅读全文
posted @ 2023-04-23 16:22 傅小灰 阅读(3283) 评论(9) 推荐(29) 编辑
摘要: 最近因为需要实现导入Word文件到富文本编辑器的需求,所以打算采用OpenXml来读取文本和图片信息并组装成html输出。当然其实也可以通过调用Office的COM接口,将文档转化为HTML(类似于用Office软件打开Word文档,然后另存为HTML文件)。 在之前的文章提取Office文件(Wo 阅读全文
posted @ 2022-08-01 11:44 傅小灰 阅读(949) 评论(1) 推荐(0) 编辑
摘要: PC版的微信将用户接收到的所有图片加密为DAT文件并保存在本地,具体保存位置就看各自的微信-文件管理设置了。 DAT格式文件不能直接打开,强行查看也就只能看到一些乱码。如果能够找到解密的方式,就可以很方便在本地筛选图片了,虽然大部分可能只是聊天吹水的内容。 加密方式 首先我尝试一下在微信中发送一张新 阅读全文
posted @ 2022-01-12 09:30 傅小灰 阅读(2982) 评论(0) 推荐(1) 编辑
摘要: AvalonEdit简介 AvalonEdit是基于WPF开发的代码显示控件,默认支持多种不同语言的关键词高亮,并且可以自定义高亮配置。所以通过AvalonEdit可以快速开发出自己想要的代码编辑器。 通过Nuget安装AvalonEdit,并在页面添加控件 <avalonEdit:TextEdit 阅读全文
posted @ 2021-12-31 15:01 傅小灰 阅读(1771) 评论(1) 推荐(4) 编辑
摘要: 在回答这个问题之前,我们先来看两个面试中经常会被问到的Redis问题 Redis为什么这么快? 完全基于内存操作 C语言实现,优化过的数据结构,性能高 单线程,无切换上下文的成本 异步非阻塞IO(多路复用IO) 再深入一点,多路复用IO是怎么实现的? 在Redis源码中,很多地方都调用Linux的e 阅读全文
posted @ 2021-06-26 17:54 傅小灰 阅读(1761) 评论(0) 推荐(1) 编辑
摘要: 记录一下10进制和62进制相互转换的方法。 var chars string = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" func encode(num int64) string { bytes := []b 阅读全文
posted @ 2021-03-31 00:49 傅小灰 阅读(1355) 评论(0) 推荐(0) 编辑