实现滑动窗口限流算法

 下面我们通过php使用redis实现一个简单通用的滑动窗口限流算法解决问题 滑动窗口算法主要解决了传统计数限流算法的阶段突发性流量问题。具体实现创建redis对象并定义缓存键$redis = new \Redis(); $redis->connect("127.0.0.1"); $key = "aaaaa";定义每分钟最大请求数量$max_count = 320; $total_s = 60; $current_time = time();计算平均值用于限制每秒请求数量$avg_count = ceil($max_count / $total_s);限制每秒请求数量$range_count = $redis->zRangeByScore($key, $current_time, $current_time); if (count($range_count) > $avg_count) { exit('请求太过频繁,请稍后 -1'); }限制每分钟请求数量$redis->zRemRangeByScore($key, 0, $current_time - 59); $c...

PHP,Golang,前端,.Net,解决方案,其他 2023-03-17 PM 8次 0条

最新jetbrains全家桶及phpstorm激活方法支持全系列全版本支持更新永久有效

  继 IDE Eval Reset 失效后,今天我们分享一个最新的jetbrains全家桶及phpstorm激活方法,并且支持全系列,全版本可更新使用并且有效。 我们知道 jetbrains 家的产品用过的都知道非常好用,其中包括 phpstorm , goland , pycharm , webstorm , intellij idea 等等这些都是非常强大及好用的开发工具,但是奈何 jetbrains 系列的工具都是要收费激活的虽然淘宝上有便宜的 学生邮箱 和 破解版 但是这些非常 容易被封 ,博主已经入了两次淘宝的坑了。 博主之前分享的 phpstorm及jetbrains永久免费激活工具插件无限试用使用 奈何对2021年6月份之后的版本已经无效了,插件的开发者已经停止对激活插件的更新了所以说2021年6月份之后的版本就不能再使用了。最新jetbrains全家桶激活方法 原理是我们主要通过代码搜索其他授权服务器进行永久激活激活。方式一 通过censyshttps://search.censys.io/主要用到的代码services.http.response.head...

PHP,软件工具,Golang,前端,解决方案 2022-03-23 AM 6928次 0条

golang切片(slice)基本操作

 本篇主要以简洁明了的方式记录分享 go 语言 slice 切片的基本使用操作,以及 go 在使用 slice 切片过程中的注意事项等等。golang切片(slice)创建可以使用make创建一个长度(len)为16的切片可以使用make创建一个长度(len)为16,cap为32 的切片var s []int var s []int={2,3,4,5} // 可以使用make创建一个长度(len)为16的切片 s := make([]int ,16 ) // 可以使用make创建一个长度(len)为16,cap为32 的切片 s := make([]int ,16 ,32)用golang内置函数(append)追加切片(slice)s1 := []int{0,1,2,3,4,5,6,7} s2 :=append(s1,10) s3 := append(s2,11) s4 := append(s3,12,13,14)用golang内置函数(cope)拷贝切片(slice)s1 := []int s2 := []int{2,3,4} cope(s2,s1) fmt....

Golang 2021-11-26 AM 592次 0条

go安装gin web框架

 gin是一个用 Go(Golang) 编写的 web框架 ,它采用了类似 martini-like 的API,由于 httprouter ,其性能提高了40倍,如果你需要高性能和高生产率,下面我们来演示下怎么安装 gin web 框架。gin开源框架地址https://github.com/gin-gonic/gin#installation安装gin使用相关扩展//下载插件工具(安装gin前,先安装gopm这个工具) go get -v github.com/gpmgo/gopm //自动导入包插件 gopm get -g -v golang.org/x/tools/cmd/goimports //转码插件 gopm get -g -v golang.org/x/text //自动检测网页编码 gopm get -g -v golang.org/x/net/html安装gin矿建步骤流程安装完成测试是否安装成功package main import "github.com/gin-gonic/gin" func main() { r := gin.Defau...

Golang 2021-10-11 PM 204次 0条

go引入使用包异常cannot resolve symbol 'xxx'

 本文主要解决 golang 引入使用 gin包 的时候异常 cannot resolve symbol 'xxx' 这个问题一般比较 熟悉go语言 的同学一眼就知道怎么解决了,本文主要记录下以供其他新同学 排查问题 使用。go出现 cannot resolve symbol 异常原因 go.mod 文件没有 require 包,或者没有初始化 go.mod 解决 cannot resolve symbol 'xxx' 异常go mod init gin go mod edit -require github.com/gin-gonic/gin@latest 使用 go.mod 注意事项go使用go mod加速依赖管理 关于 go引入使用包异常cannot resolve symbol 'xxx' 通过以上方法已经完美解决了。

Golang,解决方案 2021-09-28 PM 575次 0条

golang使用packr包把静态资源文件打包进二进制应用内

 当开发 fdem-os 时候 以为想把应用做成直接的单一启用文件,所以说一直再思考怎么把 静态文件 html以及一些css,js一类的文件给打包到应用内而不用通过程序下载在去加载,这样及方便使用又保证了代码的安全性,最终发现 golang 可以完美实现需求的 packr 第三方包。 通过 packr 我们可以完美的将静态资源打包进应用程序,并开启一个 http服务 以供使用。golang packr 包文档 packr项目文档地址 目前最新版本为 v2.8.1 版本,推荐使用 v2 版本进行开发。packr 包 官方介绍Packr is a simple solution for bundling static assets inside of Go binaries. Most importantly it does it in a way that is friendly to developers while they are developing Packr是将静态资产捆绑到 Go 二进制文件中的简单解决方案。最重要的是,它以对开发人员在开发期间友好的方式进行。 可以看...

软件工具,Golang,解决方案 2021-09-24 PM 351次 0条

go使用go mod加速依赖管理

 我们使用 go mod 可以很方便的管理使用 go 第三库,但是国内引用第三方库时候因为国内网络环境问题会非常慢,甚至可以说经常获取不到,今天我们就讲一下怎么加速 go mod 包下载。 go mod 国内代理提供商源站地址备注七牛云https://goproxy.cn/中国最可靠的 Go 模块代理 (推荐)goproxy.iohttps://goproxy.io/一个全球代理为 Go 模块而生 (推荐)阿里云http://mirrors.aliyun.com/goproxy/阿里云 go module公共代理仓库nexus社区https://gonexus.dev/为社区而制作怎么使用 go mod 国内代理go 1.13 及以上,配置go mod 国内代理(推荐)go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,directmac 或 linux 配置go mod 国内代理export GO111MODULE=on export GOPROXY=https://goproxy.cn # 还可以设置不...

Golang,解决方案 2021-09-24 PM 442次 0条

Go使用自定义包导入后打包异常解决

遇到的问题(build command-line-arguments: cannot find module for path)某个小功能一直使用的单文件进行打包编译,突然有一天慢慢变大了这个时候需要分包处理,分包处理后进行 go build xx 打包 然后就出现了异常 build command-line-arguments: cannot find module for path xxxx,然后不断地找寻原因最终找到了一个正确的解决方案,一下是处理步骤build command-line-arguments: cannot find module for path xxxx示例项目目录结构myProject -src --logic ---logic1.go ---logic2.go -main.gomain.gopackage main import ( "./src/logic" ) func main() { logic.Run(address, thread) } logic1.gopackage logic func Run() { // xxx...

Golang 2021-08-26 PM 450次 0条