当前位置:首页 > 文章列表 >golang

golang
golang专题下共有 14226 篇文章
  • Golang实现内存键值缓存系统详解
    Golang实现内存键值缓存系统详解
    1.TTL策略适合大多数场景,LRU适合访问模式不规律的数据,LFU适合数据访问模式稳定的高命中率场景,FIFO实现简单但效果一般。2.使用sync.RWMutex读写锁保证并发安全,允许多个goroutine同时读取缓存但写入时独占锁。3.通过分片锁降低锁竞争概率,利用sync.Pool减少内存分配,压缩数据减少内存占用,并可选用高性能缓存库优化性能。文章介绍了基于Golang内置map和互斥锁实现简易缓存系统的方法,支持过期时间机制并探讨了不同缓存策略的选择及优化手段。
    Golang· Go教程   |  9个月  |   golang 缓存 性能优化 并发安全 键值存储 290浏览 收藏
  • Golang并发缓存过期与LRU清理实现详解
    Golang并发缓存过期与LRU清理实现详解
    要实现Go中并发安全且支持定时清理和LRU淘汰的缓存,可组合使用标准库并设计结构。1.使用sync.RWMutex+map保障并发安全;2.每个条目记录过期时间,后台goroutine定期删除过期项;3.用container/list实现LRU,通过链表+哈希映射维护访问顺序;4.插入时更新顺序并判断容量,结合定时清理实现双重机制共存。
    Golang· Go教程   |  9个月  |   golang 缓存 lru 并发安全 过期清理 290浏览 收藏
  • Go引用本地未发布模块的几种方法
    Go引用本地未发布模块的几种方法
    使用replace指令或GoWorkspaces可引用本地模块。首先在主应用go.mod中通过require声明本地模块路径,再用replace指令将其映射到本地文件系统路径(相对或绝对),随后运行gomodtidy使更改生效;另一种更优方案是使用Go1.18+的GoWorkspaces,在工作区根目录执行goworkinit创建go.work文件,并用goworkuse添加主应用和本地模块,无需修改go.mod即可实现多模块协同开发,避免污染主模块文件且更利于团队协作与CI/CD集成。
    Golang· Go教程   |  7个月  |   golang 本地模块 290浏览 收藏
  • Golang中RPC与REST混合使用方法
    Golang中RPC与REST混合使用方法
    在Go项目中混合使用RPC和REST可兼顾性能与通用性,关键在于解耦通信层与业务层。通过共用service核心逻辑、分离接口实现双通道调用同一方法,确保逻辑变更同步生效;独立启动gRPC(:50051)和HTTP(:8080)服务,清晰划分内外调用边界;统一错误码映射与日志中间件,保证gRPC与REST错误处理一致性;为REST定义独立DTO避免直接暴露Protobuf结构,控制字段展示并适配命名规范;转换逻辑轻量化以减少性能损耗,最终让两种协议成为同一业务能力的互补窗口。
    Golang· Go教程   |  6个月  |   golang rpc 解耦 rest 混合使用 290浏览 收藏
  • Golang内存泄漏避免技巧分享
    Golang内存泄漏避免技巧分享
    Go语言虽有垃圾回收机制,但不当编码仍致内存泄漏;2.避免全局变量长期持有大对象引用,宜用sync.Map或缓存库管理生命周期;3.及时关闭文件、网络连接等非GC资源,defer释放并停止timer;4.确保goroutine有退出机制,用context控制超时与取消,防通道阻塞导致泄漏;5.切片截取后可能保留原数组内存,应复制数据断开关联;6.缓存中指针需及时清理失效对象,用pprof分析堆内存;7.规范编码、合理管理资源、结合工具检测可有效降低内存泄漏风险。
    Golang· Go教程   |  5个月  |   golang 内存泄漏 Goroutine 资源管理 pprof 290浏览 收藏
  • GolangIterator遍历技巧与使用方法
    GolangIterator遍历技巧与使用方法
    Go语言通过range、闭包、泛型和接口实现灵活迭代机制:1.range用于数组、切片、map等基础类型遍历;2.自定义闭包迭代器支持按需计算;3.Go1.18+泛型提供类型安全通用迭代器;4.接口封装统一遍历抽象。优先使用range,复杂场景选用自定义方案。
    Golang· Go教程   |  5个月  |   golang iterator 290浏览 收藏
查看更多
课程推荐
  • Golang深入理解GPM模型
    Golang深入理解GPM模型
    Golang深入理解GPM调度器模型及全场景分析,希望您看完这套视频有所收获;包括调度器的由来和分析、GMP模型简介、以及11个场景总结。
    474次学习
  • Go语言课程Gin框架实战
    Go语言课程Gin框架实战
    Gin是一个用Go(Golang)编写的HTTPweb框架。它是一个类似于 martini 但拥有更好性能的API框架,由于 httprouter,速度提高了近40倍。如果你需要极好的性能,使用Gin吧。
    339次学习
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
    205次学习
  • Go编程基础视频教程
    Go编程基础视频教程
    Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。我们收集了这套《Go编程基础视频教程》,希望能够帮助大家更好的学习go语言。
    168次学习
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
    129次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码