使用go來(lái)操作redis的方法示例
Redis簡(jiǎn)單介紹
簡(jiǎn)介
關(guān)于Redis的討論,其實(shí)在現(xiàn)在的后臺(tái)開(kāi)發(fā)中已經(jīng)是個(gè)老生常談的問(wèn)題,基本上也是后端開(kāi)發(fā)面試的基本考察點(diǎn)。其中 Redis的背景介紹和細(xì)節(jié)說(shuō)明在這里就不贅述。不管怎么介紹,核心在于Redis是一個(gè)基于內(nèi)存的key-value的多數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),并可以提供持久化服務(wù)?;趦?nèi)存的特性決定了Redis天然適合高并發(fā)的數(shù)據(jù)讀寫(xiě)緩存優(yōu)化,同時(shí)也帶來(lái)了內(nèi)存開(kāi)銷(xiāo)過(guò)大的問(wèn)題。所以在一些特定情景下,Redis是一把無(wú)往不利的大殺器,值得深入學(xué)習(xí)。
安裝redis, 運(yùn)行如下go代碼:
package main import ( "time" "fmt" "github.com/go-redis/redis" ) var Client *redis.Client func init() { Client = redis.NewClient(&redis.Options{ Addr: "127.0.0.1:6379", PoolSize: 1000, ReadTimeout: time.Millisecond * time.Duration(100), WriteTimeout: time.Millisecond * time.Duration(100), IdleTimeout: time.Second * time.Duration(60), }) _, err := Client.Ping().Result() if err != nil { panic("init redis error") } else { fmt.Println("init redis ok") } } func get(key string) (string, bool) { r, err := Client.Get(key).Result() if err != nil { return "", false } return r, true } func set(key string, val string, expTime int32) { Client.Set(key, val, time.Duration(expTime) * time.Second) } func main() { set("name", "x", 100) s, b := get("name") fmt.Println(s, b) }
結(jié)果:
init redis ok
x true
過(guò)期時(shí)間是100s, 過(guò)期后,get無(wú)法獲取信息, 返回了nil
簡(jiǎn)單, 不多說(shuō)。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Go語(yǔ)言中的錯(cuò)誤處理最佳實(shí)踐詳解
這篇文章主要為大家詳細(xì)介紹了Go語(yǔ)言中的錯(cuò)誤處理的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),對(duì)我們深入了解Go語(yǔ)言有一定的幫助,需要的可以參考下2023-08-08Golang實(shí)現(xiàn)請(qǐng)求限流的幾種辦法(小結(jié))
這篇文章主要介紹了Golang實(shí)現(xiàn)請(qǐng)求限流的幾種辦法(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Go結(jié)構(gòu)體指針引發(fā)的值傳遞思考分析
這篇文章主要為大家介紹了Go結(jié)構(gòu)體指針引發(fā)的值傳遞思考分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12go語(yǔ)言Timer計(jì)時(shí)器的用法示例詳解
Go語(yǔ)言的標(biāo)準(zhǔn)庫(kù)里提供兩種類(lèi)型的計(jì)時(shí)器Timer和Ticker。這篇文章通過(guò)實(shí)例代碼給大家介紹go語(yǔ)言Timer計(jì)時(shí)器的用法,代碼簡(jiǎn)單易懂,感興趣的朋友跟隨小編一起看看吧2020-05-05Go并發(fā)編程結(jié)構(gòu)體多字段原子操作示例詳解
這篇文章主要為大家介紹了Go并發(fā)編程結(jié)構(gòu)體多字段原子操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Go?函數(shù)中獲取調(diào)用者的函數(shù)名和文件名及行號(hào)
這篇文章主要介紹了Go?函數(shù)中獲取調(diào)用者的函數(shù)名和文件名及行號(hào),文章圍主題詳細(xì)內(nèi)容展開(kāi)相關(guān)介紹,感興趣的小伙伴可以參考一下2022-05-05