• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

go,redis实现订阅和发布

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.服务端代码 

【备注:这是服务端没秒发送一个数据导发布频道里面】

package main

import (
	"fmt"
	"github.com/go-redis/redis"
	"math/rand"
	"time"
)
func main(){
	redisConnect()
}
func redisConnect(){
	server:=redis.NewClient(&redis.Options{
		Addr:"127.0.0.1:6379",
		DB:0,
	})
	for i:=0;i<20;i++ {
		time.Sleep(time.Second)
		rand.Seed(time.Now().Unix())
		num:=rand.Intn(1000)
		n,_:=server.Publish("channel",num).Result()
		fmt.Println(n)
	}
}

2.这是客户端代码

package main

import (
	"fmt"
	"github.com/go-redis/redis"
)

func main(){
	redisClient()
}

func redisClient(){
	client:=redis.NewClient(&redis.Options{
		Addr:"127.0.0.1:6379",
		DB:0,
	})
	pubsub:=client.Subscribe("channel")
	defer  pubsub.Close()
	for msg:= range pubsub.Channel() {
		fmt.Println(msg.Payload)
	}
}

问题思考:

1.第一如果订阅端挂了怎么办

2.第二发布数据过多处理不过来怎么做

3.重复发布怎么办


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
linux下go开发环境搭建发布时间:2022-07-10
下一篇:
Go并发编程之美-读写锁发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap