go語言使用redis redigo

2022-02-13 07:23:23 字數 1963 閱讀 8045

redis的client有好多好多,go語言的client在redis官方有兩個推薦,radix和redigo。選擇哪乙個好呢?確實很糾結,後來擲硬幣決定選擇redigo了。

redis、go、redigo的安裝就不需要提了,不能強行增加篇幅。

redigo使用起來很人性化,api設計的符合直覺,我對redis了解較少,使用過程中基本沒有遇到障礙。

redigo的使用入門可以去查godoc:

接下來就是毫無技術含量的貼**了:

連線redis我一般是這樣寫的:

1 c, err := redis.dial("

tcp", "

127.0.0.1:6379")

2if err !=nil

6 defer c.close()

執行命令使用do函式,跟在redis-cli敲命令的感覺差不多的:

1 v, err := c.do("

set", "

name

", "

red")2

if err !=nil

6fmt.println(v)

7 v, err = redis.string(c.do("

get", "

name"))

8if err !=nil

12 fmt.println(v)

列表也是一樣:

1 c.do("

lpush

", "

redlist

", "

qqq"

)2 c.do("

lpush

", "

redlist

", "

www"

)3 c.do("

lpush

", "

redlist

", "

eee")

讀取列表可以for迴圈遍歷,也可以使用redis.scan函式:

1 values, _ := redis.values(c.do("

lrange

", "

redlist

", "

0", "

100"))2

3for _, v :=range values 67

//或者

8var v1 string

9 redis.scan(values, &v1)

10 fmt.println(v1)

管道:

1 c.send("

set", "

name

", "

red"

)2 c.send("

get", "

name")

3c.flush()

4c.receive()

5 c.receive()

發布訂閱:

1

func subscribe()

7defer c.close()

89 psc :=redis.pubsubconn

10 psc.subscribe("

redchatroom")

11for21}

22 }

1

go subscribe()

2go subscribe()

3go subscribe()

4go subscribe()

5go subscribe()

67 c, err := redis.dial("

tcp", "

127.0.0.1:6379")

8if err !=nil

12defer c.close()

1314

for22 }

差不多就是這樣了,確實也沒什麼可以解釋的。。。

go語言gorm使用

var jsondata map string inte ce 全域性變數 存放配置檔案的map物件 func initjson configstr string bytes reg regexp.mustcompile configstr reg.replaceallstring configst...

go語言 flag的使用

go語言flag的使用 package main import flag fmt var music file string flag.string file musicfile use file func main 例如檔案為flagtest.go go run flagtest.go file ...

go 語言之ReadFromUDP使用

今日閱讀gortp 的時候,發現其 中收取udp網路資料後總是可以認為是乙個rtp包,而我一開始認為該 邏輯存在問題,即如果對方傳送的是半個rtp包,那不就存在問題?當經過修改 驗證,當接受資料的快取快取小於傳送快取時,readfromudp就會報錯。後來,在網上查詢資料得知,udp的資料在快取佇列...