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.重復發布怎么辦