Redigo簡單實現Redis訂閱發布

2021-10-22 16:01:27 字數 1172 閱讀 2733

var wg sync.waitgroup

func subscribe (

)defer conn.

close()

//例項化乙個redigo中的pubsubconn結構體

c := redis.pubsubconn

//訂閱乙個頻道

err = c.

subscribe

("channel1"

)if err !=

nil//接收redis伺服器返回的資料

//迴圈接收

for的型別,所以需要斷言

switch v := c.

receive()

.(type

)case redis.message :

fmt.

printf

("channel:%s,\tdata:%s\n"

,v.channel,

string

(v.data)

)//訂閱或者取消訂閱

case redis.subscription:

fmt.

printf

("channel:%s\tcount:%d \tkind:%s\n"

,n.channel,n.count,n.kind)}}

}func

main()

defer conn.

close()

//起乙個協程

wg.add(1)

gosubscribe()

conn.do(

"publish"

,"channel1"

,"hello"

) wg.

wait()

}

redis.message結構體:

channel:發起頻道

data:資料,byte型別

pattern:匹配模式(如果有)

redis.subscription結構體:

kind:種類,共有 「subscribe」, 「unsubscribe」, 「psubscribe」 or 「punsubscribe」

channel:頻道

count:訂閱數量

注意:不能呼叫subscribe()裡面的conn進行發布資訊,需要另起乙個conn來進行發布。

GO連線Redis資料庫,使用redigo

golang語言版本1.14.4 安裝redigo庫go get v github.com gomodule redigo redis如果需要go redis庫的小夥伴,可以看看我這篇文章 golang連線redis資料庫 裡面涉及到如何使用go redis和一些使用redis時的幾個小技巧連線使用...

redis實現簡單佇列

在工作中,時常會有用到佇列的場景,比較常見的用rabbitmq這些專業的元件,官網位址是 重要的是官方有.net的客戶端,但是如果對rabbitmq不熟悉的話,建議使用第三方封裝好的 easynetq,rabbitmq比oqiwxfz較適合對安全性,穩定性要求較高的地方,但有時我們也會有對這方面要求...

redis佇列 生產消費模式 簡單實現

生產消費,不外乎就是生產新的訊息插入到佇列尾巴,消費者從佇列頭部取訊息。基於此,簡單實現如下 還有一種稍微複雜的實現,是結合了spring的實現,複雜實現 往列表尾部插入資料 param key param value public static void rpush string key,stri...