go,redis實現訂閱和發布


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM