gin+redis】的更多相关文章

var RedisDefaultPool *redis.Pool func newPool(addr string) *redis.Pool { return &redis.Pool{ MaxIdle: 3, MaxActive: 0, IdleTimeout: 240 * time.Second, Dial: func() (conn redis.Conn, e error) { return redis.Dial("tcp", addr) }, } } func init(…
Gin框架 Gin框架简介 package main import ( "github.com/gin-gonic/gin" "io" "net/http" "os" ) // gin框架安装: go get -u github.com/gin-gonic/gin // Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 // 对于golang而言,web框架的依赖要远比…
String get(String key) { String value = redis.get(key); if (value == null) { if (redis.setnx(key_mutex, "1")) { //设置分布式锁,同一时刻只能有一个线程能进行此操作 // 3 min timeout to avoid mutex holder crash redis.expire(key_mutex, 3 * 60) value = db.get(key); //为锁设置过期…
本文我们介绍生产环境上如何通过捕捉异常recovery来完善程序设计和提高用户体验. Golang异常处理 golang 的异常处理比较简单,通常都是在程序遇到异常崩溃panic之后通过defer调用延迟函数捕捉异常,并对异常信息进行输出和记录. 异常处理代码 defer func() { if err := recover(); err != nil { fmt.Println(err) ... // 上报异常 或者 发送告警 } }() 通过Gin中间件捕捉异常 内置中间件 gin在gin.…
Cookie Cookie是什么 HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分两次请求是否由同一个客户端发出 Cookie就是解决HTTP协议无状态的方案之一,中文是小甜饼的意思 Cookie实际上就是服务器保存在浏览器上的一段信息.浏览器有了Cookie之后,每次向服务器发送请求时都会同时将该信息发送给服务器,服务器收到请求后,就可以根据该信息处理请求 Cookie由服务器创建,并发送给浏览器,最终由浏览器保存 Cookie的用途 保持用户登录状态 Cookie…
中间件推荐 1.1.1. 列表 谷歌翻译欢迎查看原文 https://github.com/gin-gonic/contrib/blob/master/README.md RestGate - REST API端点的安全身份验证 staticbin - 用于从二进制数据提供静态文件的中间件/处理程序 gin-cors - CORS杜松子酒的官方中间件 gin-csrf - CSRF保护 gin-health - 通过gocraft/health报告的中间件 gin-merry - 带有上下文的漂…
公众号文章地址 1.需求 业务中需要实现在两个集合中搜索数据,并返回交集. 用SQL的伪代码可以描述如下: select key from set1 where sorted_key between min and max INTERSECT select key from set2 where sorted_key between min and max 2.现有存储格式 业务使用了redis的有序集合(sorted set)来存储数据: set1 -> field1 -> value1 f…
功能和验证码使用原理 本案例中没有使用redis作为缓存,而是使用的内存存储方法 github链接地址 下载命令 go get github.com/mojocn/base64Captcha 请求处理函数 // 生成图片验证码 func (m *MemberController) captcha(context *gin.Context) { // 生成图片验证码,并返回给客户端 tool.GenerateCaptcha(context) } // 校验图片验证码 func (m *Member…
Cookie介绍 Http协议是无状态的,服务器不能记录浏览器的访问状态,也就是说服务器不能判断请求的客户端是否已经登录 Cookie就是解决http协议无状态的方案之一 Cookie实际上就是服务器保存在浏览器上的一小段文本信息,浏览器有了Cookie之后,每次向服务器发送请求时都会同时将该信息发送给服务器,服务器收到请求后,就可以根据该信息处理请求 Cookie由服务器创建,并发送给浏览器,最终由浏览器进行保存 cookie的用途: 测试服务端发送cookie给客户端,客户端请求时携带coo…
Gin 简介 Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin. -- 这是来自 github 上 Gin 的简介 Gin 是一个用 Go 写的 HTTP web…