诫己
尺有所短,寸有所长;取长补短,相得益彰。
  聆听音乐
  推荐文章
Linux

2019 年 9 月 6 日魔都上海静安考红帽 rhcsa、rhce 记录

习武之人,不怕练千万招,就怕一招练千万遍!此篇文章记录了本人考红帽 RHCSA 和 RHCE 时的考题内容,仅供大家参考。祝大家考试顺利!

阅读更多
Go

Go Modules 模式

Go Modules 模式GOPATH 目录GOPATH 目录下一共包含三个子目录: bin:存储所编译生成的二进制文件。 pkg:存储预

阅读更多
开源

hexo-blog 博客开源

折腾了个把星期左右,终于把博客改的有点儿样子了,秉承着开源精神,现在把博客源码开源出来。如果你也想拥有和我一摸一样的博客,那么赶紧来试试吧!如果你喜欢,请记得给个 Star!

阅读更多
科普

不花一分钱也可以用上 JetBrains 正版全家桶

昨天,发现正在使用的 idea 要到期了,于是自己得马上去续约,免得影响自己的工作。 其实,我体验过不少的编辑器,Notepad++、Sub

阅读更多
开源

打造个性化的 GitHub 主页,让别人看了眼前一亮!

打造个性化的 GitHub 主页,让别人看了眼前一亮! 首先可以看一下我的 GitHub 首页 如何构建属于自己个性化的 GitHu

阅读更多
Pay

简单易用且优雅的跨境支付 PHP SDK 扩展包

操作简单易用,代码优雅,支持蚂蚁花呗分期,支付宝各平台跨境支付的 PHP SDK 扩展包,有良好的在线文档。

阅读更多
如何在Go语言中实现表单验证?整一个validator吧! 如何在Go语言中实现表单验证?整一个validator吧!
在现代 Web 开发中,表单验证和错误处理是至关重要的环节,尤其是在多语言环境下。 本文将通过一个实际的示例,演示如何使用 Go 语言的 Gin 框架结合 validator 包,实现高级的表单验证功能,并且支持国际化(i18n)的错误信息
2024-11-20
使用漏桶和令牌桶实现API速率限制 使用漏桶和令牌桶实现API速率限制
在现代 Web 应用程序中,流量的突增是不可避免的。为防止服务器被过多的请求压垮,限流(Rate Limiting) 是一个至关重要的技术手段。 本文将通过 Go 语言的 Gin 框架,演示如何使用漏桶算法和令牌桶算法来实现 API 的限流
2024-11-19
Go语言中使用JWT鉴权、Token刷新完整示例,拿去直接用! Go语言中使用JWT鉴权、Token刷新完整示例,拿去直接用!
在现代 Web 应用中,JWT(JSON Web Token)已经成为了主流的认证与授权解决方案。它轻量、高效、易于实现,并且非常适合于微服务架构。 在本文中,我们将通过 Go 语言及其流行的 Gin 框架,来深入探讨如何使用 JWT 实现
2024-11-18
分布式唯一ID生成:深入理解Snowflake算法在Go中的实现 分布式唯一ID生成:深入理解Snowflake算法在Go中的实现
在分布式系统中,为了确保每个节点生成的 ID 在整个系统中是唯一的,我们需要一种高效且可靠的 ID 生成机制。 分布式 ID 的特点 全局唯一性:不能出现有重复的 ID 标识,这是基本要求。 递增性:确保生成的 ID 对于用户或业务是递增的
2024-11-17
Viper,一个Go语言配置管理神器! Viper,一个Go语言配置管理神器!
在现代软件开发中,良好的配置管理可以极大地提升应用的灵活性和可维护性。 在 Go 语言中,Viper 是一个功能强大且广泛使用的配置管理库,它支持从多个来源读取配置,包括文件、环境变量、远程配置中心等。本文将详细介绍如何使用 Viper 来
2024-11-16
Go Web服务中如何优雅平滑重启? Go Web服务中如何优雅平滑重启?
在生产环境中,当我们需要对正在运行的服务进行升级时,如何确保不影响当前未处理完的请求,同时又能应用新的代码,是个极具挑战性的问题。 传统的做法通常是停止当前服务,部署新代码后再重启服务,但这种方式会导致正在处理的请求被强制中断,用户体验会受
2024-11-15
Go Web服务中如何优雅关机? Go Web服务中如何优雅关机?
在构建 Web 服务时,我们往往会遇到一个棘手的问题:当我们想要停止服务时,如何确保正在处理的请求能够顺利完成,而不是突然中断? 这种技术被称为“优雅关机”,它可以确保在服务关闭时,所有的请求都被妥善处理。 在这篇文章中,我们将通过一个简单
2024-11-14
用 Zap 轻松搞定 Go 语言中的结构化日志 用 Zap 轻松搞定 Go 语言中的结构化日志
在开发现代应用程序时,日志记录是一个不可或缺的部分。它不仅能帮助我们跟踪程序的运行状态,还能在出现问题时提供宝贵的调试信息。 在 Go 语言中,有许多日志库可供选择,但在性能和灵活性方面,Zap 是其中的佼佼者。 今天,我将带你深入了解如何
2024-11-13
Redis 实现高效任务队列:异步队列与延迟队列详解 Redis 实现高效任务队列:异步队列与延迟队列详解
在现代开发中,任务队列是一种非常常见的设计模式。它允许我们将需要耗时的操作放到后台执行,从而提高系统的响应速度和并发能力。而在众多的技术选型中,Redis 凭借其高性能和简单易用性,成为了任务队列的理想选择。 本文将从零开始,带大家了解如何
2024-11-12
如何用Redis高效实现点赞功能?用Set?还是Bitmap? 如何用Redis高效实现点赞功能?用Set?还是Bitmap?
在众多软件应用中,点赞功能几乎成了所有应用中的“标配”。但实现一个高效的点赞功能并不简单,尤其是在面对大规模的用户量和高并发场景时。 今天,我们就从实际需求出发,探索如何利用 Redis 的数据结构来设计一个点赞系统,从而理解 Set 和
2024-11-12
Go语言中高效使用Redis的Pipeline Go语言中高效使用Redis的Pipeline
在构建高性能应用时,Redis 经常成为开发者的首选工具。作为一个内存数据库,Redis 可以处理大量的数据操作,但如果每个命令都单独发送,网络延迟会成为瓶颈,影响性能。 这时,Redis 的 Pipeline 和 Watch 机制应运而生
2024-08-19
Go语言中如何扫描Redis中大量的key Go语言中如何扫描Redis中大量的key
在 Redis 中,当我们需要遍历大量的键时,直接使用 KEYS 命令会面临性能瓶颈,尤其是在键数量非常多的情况下。 KEYS 命令会一次性返回所有匹配的键,这可能导致 Redis 阻塞,严重影响线上服务的稳定性。为了解决这个问题,Redi
2024-08-16
1 / 17