阅读:4328回复:2
Gin实战开发技巧篇(4):手撸限流、带过期机制的缓存
Gin实战技巧篇打算永远更新下去。 每个课程都是独立的,之前更新过
1、Gin开发实战技巧篇(新手进阶):主做代码逼格提升 2、Gin开发实战技巧篇2:事件总线 3、Gin实战开发技巧篇(3):redis锁篇 本篇的主题是以令牌桶算法为例在gin的背景下手撸一个限流功能,同时为了扩展令牌桶我们还需要手撸一个带过期机制的缓存(12课时左右),分3次更新完结。 第1讲:开张课、最简单的令牌桶代码 免费试听,无需登录 老套弄的开张课,直接出代码 第2讲:编写gin限流装饰器 上节课无脑实现了一个简单的限流,今天先讲如何整合到gin中 第3讲:处理令牌速率--协程的方式 先使用比较常规的方法来处理令牌放入速率--协程的方式 第4讲:处理令牌速率(2):更方便的方法 承接上节课,本课时的方法更加推荐使用。减少了资源消耗 第5讲:扩展案例:支持简单参数限流 今天先做个扩展。后面实现带过期时间的缓存后,做进一步扩展 第6讲:基于IP限流(无脑版) 为了引出后面的课时,今天先做个无脑IP限流。大家可以思考下问题在哪 第7讲:LRU算法、go自带双向链表免费试听,无需登录 为了实现IP限流,我们首先要写一个简单缓存出来,今天先讲LRU算法 第8讲:定义我们的缓存结构、基本存取 今天我们结合上节课讲的LRU算法来定义基本结构 第9讲:LRU(3):封装缓存对象、末位淘汰 今天我们把上节课代码做基本封装,并进行末位缓存淘汰代码编写 第10讲:LRU(4):限制缓存最大数量 今天我们来实现缓存的最大数量限制。下节课我们实现缓存的过期 第11讲:LRU缓存:实现缓存的过期(上) 今天我们来实现缓存的过期机制。先从简单的开始 第12讲:LRU缓存:实现缓存的过期(下) 完成过期,定时淘汰过期的缓存。实现的方式比较简单,供大家参考 第13讲:基于LRU缓存再看实现IP限流 免费观看,无需登录 完结课,我们基于手撸的LRU缓存扩展出IP令牌桶限流 |
|
|