前言 最近在用 golang 做一些 Redis 相关的操作,选用了 rediGo 这个第三方库。然后在使用 Pub/Sub 的时候,却发现了一个小坑…… Redis Client 首先,我们来初始化一个
前言
最近在用 golang 做一些 Redis 相关的操作,选用了 rediGo 这个第三方库。然后在使用 Pub/Sub 的时候,却发现了一个小坑……
Redis Client
首先,我们来初始化一个带连接池的 Redis Client:
import (
"GitHub.com/gomodule/redigo/redis"
)
type RedisClient struct {
pool *redis.Pool
}
func NewRedisClient(addr string, db int, passwd string) *RedisClient {
pool := &redis.Pool{
MaxIdle: 10,
IdleTimeout: 300 * time.Second,
Dial: func() (redis.Conn, error) {
c, err := redis.Dial("tcp", addr, redis.DialPassword(passwd), redis.DialDatabase(db))
if err != nil {
return nil, err
}
return c, nil
},
TestOnBorrow: func(c redis.Conn, t time.Time) error {
if time.Since(t) < time.Minute {
return nil
}
_, err := c.Do("PING")
return err
},
}
log.Printf("new redis pool at %s", addr)
client := &RedisClient{
pool: pool,
}
return client
}
--结束END--
本文标题: 关于redigo中PubSub的一点小坑分析
本文链接: https://www.lsjlt.com/news/52084.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
2024-05-07
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0