go-redis 发布/订阅

ChunShan · · 8190 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:ChunShan

查看原文:go-redis 发布/订阅

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

8190 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传