golang
已收录文章:14424篇
-
正文 Redis作是一个高性能的内存数据库,常被应用于分布式系统中,除了作为分布式缓存或简单的内存数据库还有一些特殊的应用场景,本文结合Golang来编写对应的中间件。 本文所有代码见githu113 收藏
-
使用context.Context可安全传递请求ID和元数据,通过WithValue存值、goroutine间传递Context、Value取值,并结合自定义键类型避免冲突,适用于中间件、超时取消等场景。112 收藏
-
分页需传入页码和每页大小,计算偏移量实现数据库查询,返回数据及总数。1.定义page和page_size参数;2.计算offset=(page-1)*page_size;3.执行LIMIT与OFFSET查询;4.获取总记录数;5.构建含数据、总数、分页信息的响应结构并返回JSON。112 收藏
-
状态机模式通过接口和结构体在Golang中实现对象行为随状态变化的管理。1.定义State接口声明进入、执行、退出方法;2.Context结构体持有当前状态并委托请求;3.每个具体状态如IdleState、RunningState实现State接口;4.状态切换通过Context的SwitchTo方法统一控制,避免非法跳转;5.事件如Start、Pause触发状态转换,调用当前状态对应逻辑。该模式解耦状态行为,适用于订单、连接等生命周期复杂的场景,提升代码可维护性。112 收藏
-
使用net/url包解析、构建和操作URL;2.通过url.Parse()解析字符串为*url.URL结构;3.利用u.Query()获取查询参数并用Set/Add修改;4.手动构造url.URL实例并调用Encode()生成标准URL;5.使用ResolveReference处理相对路径。112 收藏
-
select语句用于多路复用通道操作,语法包含多个case分支,每个监听通道的发送或接收,当多个通道就绪时随机选择一个执行,避免固定顺序偏差。112 收藏