相关分享
理解数据库分片
这篇文章系统讲解了数据库分片的概念、优缺点以及常见的分片方法,包括基于键的分片、基于范围的分片和基于目录的分片。通过图文并茂的方式,作者详细阐述了每种分片策略的实现原理和适用场景。内容适合数据库管理员、系统架构师以及对数据库扩展性设计感兴趣的开发者,提供了深入理解数据库分片的宝贵参考。
基于 Docker 搭建开发环境(一):数据库+监控
本文介绍了使用 Docker 构建开发环境的步骤,涵盖 MySQL 数据库配置、Nacos 服务发现与配置管理、Prometheus 监控及 Grafana 可视化。通过 Docker Compose 结构化配置,实现了多组件集成。文章提供了详细的 `docker-compose.yml` 文件示例,并探讨了自动接入监控、应用打包等优化方向,适用于需要集中管理多项开发工具的场景。
OpenCV 模糊处理图片中包含的二维码
之前在某电商 App 上浏览商品评论区时,发现一些晒单照片中包含的二维码被马赛克处理了,从马赛克的处理痕迹来看不像是用户手动处理的,更像是机器识别+处理的,对此我更好奇其实现原理了。
借助 ChatGPT,了解到主流的处理方式是通过 OpenCV 识别二维码的位置,并创建一个模糊图层对其覆盖。
从存储模型聊一聊时序数据库的应用场景
本文介绍时序数据库的存储模型,只有理解了时序数据的存储模型,才能更好的了解时序数据库的优缺点以及其适用场景。
Go 中的高速数据包处理:从 net.Dial 到 AF_XDP
最近编写了一个Go程序,向数百万个IP地址发送ICMP ping消息。显然,希望这个过程能尽可能快速高效地完成。因此,这促使我研究各种与网络栈交互和快速发送数据包的各种方法。这是一个有趣的旅程,所以在本文中,我将分享一些学习成果,并记录下来供将来参考:)你将看到,仅使用8个内核就可以达到1880万数据包/秒。这里还有一个GitHub仓库,其中包含了示例代码,可以方便地跟随学习。
高效I/O并发处理:双缓冲和Exchanger
双缓冲(double buffering)是高效处理I/O操作的一种并发技术,它使用两个buffer,一个goroutine使用其中一个buffer进行写,而另一个goroutine使用另一个buffer进行读,然后进行交换。这样两个goroutine可能并发的执行,减少它们之间的等待和阻塞。
本文还提供了一个类似Java的java.util.concurrent.Exchanger的Go并发原语,它可以用来在两个goroutine之间交换数据,快速实现双缓冲的模式。 这个并发原语可以在github.com/smallnest/exp/sync/Exchanger找到。
运维|MySQL 数据库被黑,心力交瘁
前一阵有一个测试用的 MySQL 数据库被黑了,删库勒索的那种,这里记录一下事情经过,给自己也敲个警钟。
Windows Defender 数据库结构分析(下)
本节中,我们将进一步了解数据库中的一些其他签名类型,包括 SIGNATURE_TYPE_DELTA_BLOB、SIGNATURE_TYPE_FRIENDLYFILE_SHA256 和 SIGNATURE_TYPE_LUASTANDALONE。
Windows Defender 数据库结构分析(上)
Windows Defender (WD) 是一款集成于 Windows 10 和 11 中的恶意软件防护产品。随着时间的推移,WD在与Windows在发展过程中展现出了其在检测和阻止个人计算机不同类型的恶意软件的有效性。在本文中,我们将探讨WD使用的数据库结构(CSDL),以提取其中的数据以更深入了解该CSDL的格式以及其中的一些识别标志类型。
