avatar
文章
15
标签
21
分类
8
首页
归档
分类
标签
关于
Logo野鹤的小窝
首页
归档
分类
标签
关于

野鹤的小窝

GoFrame文件上传完全指南
发表于2025-09-12|Golang|Golang•后端•GoFrame
引言GoFrame 是一个模块化、高性能、企业级的 Golang 应用开发框架,提供了丰富的功能组件。文件上传是 Web 应用中常见的需求,GoFrame 框架提供了简单而强大的文件上传处理能力。本文将详细介绍如何在 GoFrame 中实现文件上传功能,包括基本配置、API 使用、安全处理以及最佳实践。 目录 基础知识 GoFrame 文件上传概述 文件上传相关接口 配置说明 上传目录配置 文件大小限制 文件类型限制 基本使用 单文件上传 多文件上传 自定义文件名 高级用法 文件验证 图片处理 分片上传 完整示例 后端代码 前端代码 安全考虑 常见问题与解决方案 最佳实践 基础知识GoFrame 文件上传概述GoFrame 框架通过 ghttp.Request 对象提供了便捷的文件上传处理能力。上传的文件会被封装为 *ghttp.UploadFile 对象,该对象提供了丰富的方法来操作上传文件,如获取文件信息、保存文件等。 文件上传相关接口GoFrame 中与文件上传相关的主要接口和方法包括: GetUploadFile(name string) *U...
Golang HTTP请求完全指南
发表于2025-09-11|Golang|Golang•后端•HTTP
引言Golang 提供了强大而灵活的 HTTP 客户端和服务器实现,通过标准库 net/http 包可以轻松处理 HTTP 请求和响应。本文将详细介绍如何在 Go 中发起各种 HTTP 请求、处理响应以及一些高级用法和最佳实践。 目录 基础 HTTP 请求 GET 请求 POST 请求 POST 表单请求 自定义 HTTP 请求 创建自定义请求 设置请求头 设置查询参数 设置请求超时 发送请求 处理 HTTP 响应 读取响应体 处理状态码 处理响应头 解析 JSON 响应 解析 XML 响应 高级用法 HTTP 客户端定制 处理 Cookie 上传文件 下载文件 HTTP/2 支持 并发请求 错误处理与调试 常见错误处理 请求调试技巧 最佳实践 连接池管理 请求重试策略 性能优化 完整示例 基础 HTTP 请求GET 请求最简单的 HTTP 请求是 GET 请求,用于从服务器获取数据: 12345678910111213141516171819202122232425262728package mainimport ( "fmt&...
商品秒杀与高并发系统设计
发表于2025-09-10|后端开发系统架构|Redis•MySQL•高并发•秒杀系统•性能优化
引言在电商领域,商品秒杀是一种常见的促销活动,它要求系统能够在短时间内处理大量的并发请求。本文将深入探讨高并发的概念、秒杀系统面临的挑战以及相应的解决方案,并提供基于Redis和MySQL的实现示例。 目录 并发与高并发基础 什么是并发 什么是高并发 高并发的特点 秒杀系统架构设计 系统架构图 核心流程 关键技术点 高并发的挑战 高并发的解决方案 前端优化 系统架构优化 数据库优化 缓存策略 限流与熔断 秒杀系统实现示例 基于Redis的实现 基于MySQL的实现 性能测试与优化 常见问题与解决方案 总结与最佳实践 并发与高并发基础什么是并发并发是指在同一时间段内,多个任务同时执行的能力。在计算机系统中,这通常通过时间片轮转或多核处理来实现。 举个生活中的例子来理解并发和并行的区别: 单线程处理:你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这说明你不支持并发也不支持并行。 并发处理:你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。 并行处理:你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。 什么是...
WebSocket
发表于2025-09-05|后端|后端•WebSocket•实时通信•前端
WebSocket引言WebSocket 是现代 Web 开发中实现实时双向通信的重要技术。本文将从基础概念开始,深入探讨 WebSocket 的工作原理、实现方式和最佳实践,帮助开发者全面掌握这项技术。 目录 什么是 WebSocket 与 HTTP 的区别 WebSocket 协议详解 握手阶段 数据传输阶段 WebSocket 与 Socket 的区别 工作原理 核心特征 应用场景 代码示例 服务端实现 (PHP/Workerman) 客户端实现 (JavaScript) 性能优化 安全性考虑 常见问题与解决方案 浏览器兼容性 最佳实践 什么是 WebSocketWebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它允许服务器主动向客户端推送数据,而不需要客户端发起请求,从而实现真正的实时通信。 与 HTTP 的区别 特性 HTTP WebSocket 连接类型 短连接,每次请求都需要握手 长连接,只需握手一次 通信方向 单向,只能由客户端发起请求 双向,服务器可主动推送数据 协议标识 http:// /...
GoFrame-demo-用户注册实现
发表于2025-08-29|后端|GoLang
注册请求/响应1234567891011121314151617181920#api/v1/user/user.gopackage userimport ( "gf_study/internal/model/entity" "github.com/gogf/gf/v2/frame/g")type RegisterReq struct { g.Meta `path:"/user/register" method:"post" summary:"注册" tags:"User" ` Username string `v:"required|length:6,16#请输入账号|账号长度为:min到:max位" dc:"用户账号" json:"username"` Password string `v:"required|length:6,16#请输入密码|密码长度为:min到:...
RabbitMq
发表于2025-08-27|RabbitMQ•PHP•ThinkPHP•消息队列•后端
引言RabbitMQ 是一个开源的消息代理软件(消息队列),实现了高级消息队列协议 (AMQP)。它常用于分布式系统中处理异步通信、任务队列和系统解耦。本文将指导您安装 RabbitMQ,并提供 ThinkPHP 中的简单示例,帮助您快速上手。 目录 引言 基础概念 工作模式 高级主题 安装 安装 Erlang 安装 RabbitMQ Windows 安装 Linux 安装(Ubuntu 示例) macOS 安装(使用 Homebrew) 启用插件 启动 RabbitMQ 打开管理界面 ThinkPHP 示例 安装 Composer 包 生产者 消费者 查看指令 启动消费者监听 测试 生产消息 查看消费者消息 常见问题排查 最佳实践 参考资源 SEO 优化建议 基础概念RabbitMQ 是基于 AMQP(高级消息队列协议)的消息代理。核心组件包括: 生产者 (Producer): 发送消息的应用程序。 消费者 (Consumer): 接收并处理消息的应用程序。 队列 (Queue): 存储消息的缓冲区。消息在队列中等待被消费。 交换机 (Exchange): ...
crud demo
发表于2025-08-27|后端|GoLang
脚手架安装1go install github.com/gogf/gf/cmd/gf/v2@latest 查看是否安装成功1234567891011121314$ gf -vv2.9.0Welcome to GoFrame!Env Detail: Go Version: go1.24.3 windows/amd64 GF Version(go.mod): cannot find go.modCLI Detail: Installed At: C:\Users\JT\go\bin\gf.exe Built Go Version: go1.24.3 Built GF Version: v2.9.0Others Detail: Docs: https://goframe.org Now : 2025-08-27T15:18:41+08:00 模板123gf init demo -u# demo 项目名称# -u 使用最新版 目录结构1234567891011121314151617demo├── api├── hack├── internal│ ├── cmd│ ...
go frame
发表于2025-08-26|后端|GoLang
GoFrame 安装安装 golang版本 >= 1.20 12345#初始化go.modgo mod init# 安装gfgo get -u -v github.com/gogf/gf/v2 导入123import ( "github.com/gogf/gf/v2/frame/g") 快速开始123456789101112package mainimport ( "fmt" "github.com/gogf/gf/v2")func main() { fmt.Println("Hello GoFrame:", gf.VERSION)} 运行1go run main.go 输出1Hello GoFrame: 2.9.0 获取请求参数123456789101112package mainimport ( "fmt" "github.com/gogf/gf/v2")func main() { ...
Docker
发表于2025-07-16|后端|Docker
本文整理了Docker的常用命令、参数和使用场景,方便快速查阅和使用。 Docker常用命令镜像命令列出所有镜像1docker images 搜索镜像1docker search 镜像名 拉取镜像1docker pull 镜像名 容器命令列出所有容器1docker ps -a 运行容器1docker run -d --name 容器名 镜像名 启动容器1docker start 容器名 停止容器1docker stop 容器名 删除容器1docker rm 容器名 网络命令列出所有网络1docker network ls 创建网络1docker network create 网络名 删除网络1docker network rm 网络名 数据卷命令列出所有数据卷1docker volume ls 创建数据卷1docker volume create 数据卷名 删除数据卷1docker volume rm 数据卷名 其他命令查看容器日志1docker logs 容器名 进入容器1docker exec -it 容器名 bash 查看容器端口映射1d...
PHP 面试笔试常见题汇总
发表于2025-07-15|后端|PHP•后端
PHP 面试笔试常见题汇总目录 PHP 基础知识 面向对象编程 框架与设计模式 数据库与缓存 安全与性能 现代 PHP 开发 常见场景 PHP 基础知识1. 变量与数据类型问题:PHP 有哪些基本数据类型?如何判断变量类型?答案: 基本数据类型: 标量类型: boolean、integer、float、string 复合类型: array、object、callable、iterable 特殊类型: null、resource 类型判断方法: gettype($var) - 返回变量类型字符串 is_*() 系列函数 - 如 is_array()、is_string() instanceof - 检查对象类型 var_dump() - 详细输出变量信息 1234$var = "Hello";echo gettype($var); // stringecho is_string($var); // trueecho var_dump($var); // string(5) "Hello" 问题:&...
12
avatar
Cola
文章
15
标签
21
分类
8
Follow Me
公告
欢迎来到野鹤的小窝
最新文章
GoFrame文件上传完全指南2025-09-12
Golang HTTP请求完全指南2025-09-11
商品秒杀与高并发系统设计2025-09-10
WebSocket2025-09-05
GoFrame-demo-用户注册实现2025-08-29
分类
  • Golang3
  • MySQL1
  • Redis1
  • git1
  • 后端7
  • 后端开发1
    • 系统架构1
  • 算法1
标签
后端 PHP ThinkPHP 高并发 git 性能优化 Redis GoFrame MySQL 秒杀系统 消息队列 HTTP RabbitMQ 前端 GoLang Docker 算法 排序 实时通信 Golang WebSocket
归档
  • 九月 2025 4
  • 八月 2025 4
  • 七月 2025 5
  • 六月 2025 2
网站信息
文章数目 :
15
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2019 - 2025 By Cola
备案号:陕ICP备2021007926号-1