手把手教你用Go语言实现缓存系统

> 欢迎大家到我的博客浏览 <a href="https://www.yinkai.cc/post/a78e65ab014d188b51f57487f4e5c45c">YinKai 's Blog | 手把手教你用Go语言实现缓存系统</a> ​ 今天我们围绕一个面试题来实现一个内存缓存系统,大家也可以在完成后,自己增加一些额外的功能。<!--more--> # 面试题内容 1. 支持设置过期时间,精度到秒 2. 支持设置最大内存,当内存超出时做出合理的处理 3. 支持并发...阅读全文

2023-12-05 10:56:47

手把手教你用go语言实现生产者消费者模式

> 欢迎大家到我的博客浏览 <a href="https://www.yinkai.cc/post/f07fe1e9850811ed7745690013acaace">YinKai 's Blog | 手把手教你用go语言实现生产者消费者模式</a> ​ 本篇文章会从生产者消费者模式的定义、特点、流程等方面为大家展开介绍,并带大家手把手来实现一下生产者消费者模式。<!--more--> ### 一、 简介 ​ 生产者消费者模式是一种并发设计模式,用于解决多线程环境下生产者和消费...阅读全文

2023-12-07 15:12:56

手把手教你使用pprof进行性能优化

> 欢迎大家到我的博客浏览,<a href="https://www.yinkai.cc/post/56154c4bf826fbfcd53d66ac5541f6a1">YinKai 's Blog</a> ​ 大家好,今天我们来一起学习一下 pprof 这个工具。<!--more--> #### pprof 是什么 ​ 肯定会有人问,pprof 是做什么用的? ​ pprof 是 Go 语言自带的性能分析工具,用于识别和解决应用程序中的性能瓶颈问题。大家应该或多或少有...阅读全文

2023-12-09 16:03:43

初识分布式键值对存储etcd

> 更好的阅读体验,请点击 <a href="https://www.yinkai.cc/post/8aed7f96a55e6cbfb48ddba0188f4bb6">YinKai 's Blog</a> ​ 大家好,今天我带大家来认识一下 etcd。<!--more--> # 一、什么是 etcd ​ etcd 是一个开源的分布式键值存储系统,主要用于构建分布式系统中那点服务发现、配置管理、分布式锁等场景。它采用 Raft 一致性算法来确保所有节点上的数据一致性。 !...阅读全文

2023-12-11 15:39:23

[go 面试] 缓存策略与应对数据库压力的良方

> 关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力! 在高并发场景中,缓存是提高系统性能的关键利器。然而,缓存穿透、缓存击穿、缓存雪崩等问题可能会给系统带来严重的负担。本文将深入探讨这些问题,并提供有效的解决办法,使用 Go 语言示例代码。 ## 1. 缓存穿透 ### 1.1 问题描述 缓存穿透是指每次查询都没有命中缓存,导致每次都需要去数据库中查询,可能引起数据库压力剧增。 ### 1.2 解决...阅读全文

2023-12-11 22:44:26

[go 面试] 雪花算法与分布式ID生成

> 关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力! ## 生成全局唯一ID的雪花算法原理 雪花算法是一种用于生成全局唯一ID的算法,最初由Twitter开发,用于解决分布式系统中生成ID的问题。其核心思想是将一个64位的长整型ID划分成多个部分,每个部分用于表示不同的信息,确保了生成的ID在分布式环境下的唯一性。 ### ID结构 1. **符号位(1位)**:始终为0,用于保证ID为正数。 2. *...阅读全文

2023-12-12 23:01:44