首页
学习
活动
专区
工具
TVP
发布

Golang语言社区

Golang语言社区(www.Golang.LTD)专业分享Go语言基础、提高等最新最前沿动态。
专栏成员
1903
文章
2877712
阅读量
586
订阅数
[译]使用 Go 语言读写Redis协议
原文: Reading and Writing Redis Protocol in Go 翻译整理: smallnest, 译文连接: 使用 Go 语言读写Redis协议。
李海彬
2019-05-08
5250
go微服务系列之三
在前两篇系列博文中,我已经实现了user-srv、web-srv、api-srv,在新的一篇博文中,我要讲解的是如何在项目中如何使用redis存储session。如果想直接查阅源码或者通过demo学习的,可以访问ricoder_demo。
李海彬
2019-05-08
7140
go语言使用redis(redigo)
go的redis client用的比较多两个包是redix和redigo,因为beego cache模块里redis使用的是redigo,所以我也就使用这个包了。因为代码内容偏多,结构不清晰,不方便阅读,最后整理成一份思维导图,便于学习。当把整体分析,会发现提供给开发者使用的内容非常巧妙。
李海彬
2019-01-08
5K0
go知名第三方包ssdb
原文作者:laijh 来源:简书 因为beego中cache模块中使用了ssdb,所以准备学习下ssdb (1)ssdb简介 (2)ssdb的基本操作 (3)gossdb怎么使用1、ssdb简介 SSDB 是一个 C/C++ 语言开发的高性能 NoSQL 数据库, 支持 KV, list, map(hash), zset(sorted set),qlist(队列) 等数据结构, 用来替代或者与 Redis 配合存储十亿级别列表的数据. SSDB 是稳定的, 生产环境使用的, 已经在许多互联网公司得到广泛使用
李海彬
2019-01-08
7650
go语言项目优化(经验之谈)
我的课题主要分为以下三章,斗鱼在GO的应用场景,GO在业务中如何优化,我们在GO中踩过了哪些坑。
李海彬
2018-12-19
8710
beego 1.10.0 发布
beego经过了很长一段时间的修修补补,终于在周末发布了1.10.0版本,这一次详细更新如下,主要的特色是增加了自动https申请证书,增加了yaml格式支持输出,支持了Redis 集群等新特性。
李海彬
2018-07-26
1.1K0
Golang通用连接池
连接池在编程中并不少见,链接数据库,redis等操作都需要连接池,否则就会出现并发问题,如果每次操作都建立一条新的链接将会大大消耗资源,笔者也是在使用thrift-Clinet链接Service端使用的时候出现了并发问题,然后找到了一个通用的连接池的库在这里分享给大家.
李海彬
2018-07-26
9091
Dynamic Nginx Router... in Go!
We needed a specialized load balancer at Nitro. After some study, Mihai Todor and I built a solution that leverages Nginx, the Redis protocol, and a Go-based request router where Nginx does all the heavy lifting and the router carries no traffic itself. This solution has worked great in production for the last year. Here’s what we did and why we did it.
李海彬
2018-07-26
6270
golang基于redis lua封装的优先级去重队列
作者: 峰云 博客: http://xiaorui.cc 前言: 前两天由于某几个厂商的api出问题,导致后台任务大量堆积,又因为我这边任务流系统会重试超时任务,所以导致队列中有大量的重复任务。这时候
李海彬
2018-03-28
1.3K0
golang基于redis lua封装的优先级去重队列
前言: 前两天由于某几个厂商的api出问题,导致后台任务大量堆积,又因为我这边任务流系统会重试超时任务,所以导致队列中有大量的重复任务。这时候我们要临时解决两个事情,一件事情,让一些高质量的任务优先执
李海彬
2018-03-28
9420
Redis之并发写入
首先需要澄清一个事实:redis服务端是单线程处理客户端请求,也就是说客户端请求在服务端是串行化执行的,因此对服务端来说,并不存在并发问题。但业务方却存在并发操作redis中的同一个key的情况。所以如何让A客户端知道B客户端正在操作它想操作的 key,就成了必须要讨论的问题。 那么开始总结下方案吧: 1. SETNX key value //key存在就不做任何操作,返回0;不存在操作成功返回1 复制代码 这种方式通过对需要操作的key加锁来保证并发操作的串行化。这里我们以Golang代码为例来
李海彬
2018-03-27
3.6K0
【提问帖】GO中调用redis时,当并发量比较大时出现的问题。
GO中调用redis时,实始化一个连接池,做法也是一般的用户: &redis.Pool{ MaxIdle: beego.AppConfig.DefaultInt("redis::maxidle", 1), MaxActive: beego.AppConfig.DefaultInt("redis::maxactive", 10), IdleTimeout: time.Duration(beego.AppConfig.DefaultInt64("redis::idle_tim
李海彬
2018-03-27
2.1K0
golang实现基于redis和consul的可水平扩展的排行榜服务范例
本文的完整代码见 https://github.com/changjixiong/goNotes/tree/master/redisnote ,https://github.com/changjixiong/goNotes/tree/master/utils 及https://github.com/changjixiong/goNotes/tree/master/reflectinvoke。如果文中没有显示链接说明链接在被转发的时候被干掉了,请搜索找到原文阅读。 概述   排行榜在各种互联网应用中广泛存在。
李海彬
2018-03-27
1K0
一个go语言实现的短链接服务
一个go语言实现的短链接服务 首先,博客转移到 wusay.org 了,去年没交费,博客都没了。。。刚刚恢复过来,以前的文章没了,慢慢补吧。 什么是短链接服务 大家都用过新浪微博的短连接吧,就是t.cn后面一串不知道是什么的数,然后跳转到一个新页面去,具体什么是短连接请大家自行脑补,在这里,目前有很多提供短连接的地方,比如狼厂的短连接服务,还有提供很多短链接的在线服务,比如这个,能生成很多地方的短连接。 巴特,作为一个程序员,我们不止需要一个端链接服务,我需要自己实现一个短连接服务,因为一般的公共的短连接都
李海彬
2018-03-26
2K0
连接redis
使用Redigo这个库 package main import ( "fmt" "redis" "time" "strconv" ) var ( server string = "192.168.1.105:6379" password string = "passwd" ) var pool *redis.Pool func test(i int) { c := pool.Get() defer c.Close() t:=strconv.Itoa(i) c.Do("SETE
李海彬
2018-03-26
1.5K0
redigo 连接池代码分析
结构体分析 type Pool struct { // 用来创建redis连接的方法 Dial func() (Conn, error) // 如果设置了给func,那么每次p.Get()的时候都会调用改方法来验证连接的可用性 TestOnBorrow func(c Conn, t time.Time) error // 定义连接池中最大连接数(超过这个数会关闭老的链接,总会保持这个数) MaxIdle int // 当前连接池中可用的链接数.
李海彬
2018-03-26
1.8K0
一个go语言实现的短链接服务
一个go语言实现的短链接服务 首先,博客转移到 wusay.org 了,去年没交费,博客都没了。。。刚刚恢复过来,以前的文章没了,慢慢补吧。 什么是短链接服务 大家都用过新浪微博的短连接吧,就是t.cn后面一串不知道是什么的数,然后跳转到一个新页面去,具体什么是短连接请大家自行脑补,在这里,目前有很多提供短连接的地方,比如狼厂的短连接服务,还有提供很多短链接的在线服务,比如这个,能生成很多地方的短连接。 巴特,作为一个程序员,我们不止需要一个端链接服务,我需要自己实现一个短连接服务,因为一般的公共的短连接都
李海彬
2018-03-26
1.1K0
Golang语言 redis 使用
package main import ( "fmt" "github.com/garyburd/redigo/redis" ) func newConn() (redis.Conn, error) { c, err := redis.Dial("tcp", "192.168.0.2:6379") if err != nil { return nil, err } _, err = c.Do("AUTH", "redis@hsjc")
李海彬
2018-03-23
7280
Redigo--用池管理redis连接
在golang的项目中,若要频繁的用redis(或者其他类似的NoSQL)来存取数据,最好用redigo自带的池来管理连接。 不然的话,每当要操作redis时,建立连接,用完后再关闭,会导致大量的连接处于TIME_WAIT状态(redis连接本质上就是tcp)。 注:TIME_WAIT,也叫TCP半连接状态,会继续占用本地端口。 以下为redis连接池的golang实现: import ( "github.com/garyburd/redigo/redis" "github.com/
李海彬
2018-03-23
2.4K0
go语言操作redis连接池的方法
unc newPool(server, password string) *redis.Pool { return &redis.Pool{ MaxIdle: 3, IdleTimeout: 240 * time.Second, Dial: func () (redis.Conn, error) { c, err := redis.Dial("tcp", server) if err != nil {
李海彬
2018-03-23
8250
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档