go-redis 发布/订阅
最近golang 的项目开始使用redis 对于redis 真的是接触少,而且是golang版本的 只能是看着文档一点一点的入手了
连接初始化
RedisClient = redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password set
DB: 0, // use default DB
})
发布
//参数1 频道名 字符串类型
//参数2 发送的内容 他是个 interface{} 类型 因为我要和前端对接 所以data是我转的json字符
err := RedisClient.Publish("message", data).Err()
if err != nil {
return errors.New("发布失败")
}
订阅
func Subscribe(){
//参数1 频道名 字符串类型
pubsub := redis.Redis.Subscribe("homework")
_, err := pubsub.Receive()
if err != nil {
return
}
ch := pubsub.Channel()
for msg := range ch {
fmt.Println( msg.Channel, msg.Payload, "\r\n")
}
}
这里的订阅了频道,阻塞了代码继续执行,所以我们 需要 go Subscribe() 来让我们的程序 继续执行 并且go Subscribe() 写在init方法内 服务启动只执行一次