go-redis 发布/订阅

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方法内 服务启动只执行一次 

你可能感兴趣的:(go-redis 发布/订阅)