使用go來操作redis的方法示例
Redis簡單介紹
簡介
關(guān)于Redis的討論,其實(shí)在現(xiàn)在的后臺(tái)開發(fā)中已經(jīng)是個(gè)老生常談的問題,基本上也是后端開發(fā)面試的基本考察點(diǎn)。其中 Redis的背景介紹和細(xì)節(jié)說明在這里就不贅述。不管怎么介紹,核心在于Redis是一個(gè)基于內(nèi)存的key-value的多數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),并可以提供持久化服務(wù)。基于內(nèi)存的特性決定了Redis天然適合高并發(fā)的數(shù)據(jù)讀寫緩存優(yōu)化,同時(shí)也帶來了內(nèi)存開銷過大的問題。所以在一些特定情景下,Redis是一把無往不利的大殺器,值得深入學(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
過期時(shí)間是100s, 過期后,get無法獲取信息, 返回了nil
簡單, 不多說。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Golang實(shí)現(xiàn)請(qǐng)求限流的幾種辦法(小結(jié))
這篇文章主要介紹了Golang實(shí)現(xiàn)請(qǐng)求限流的幾種辦法(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Go結(jié)構(gòu)體指針引發(fā)的值傳遞思考分析
這篇文章主要為大家介紹了Go結(jié)構(gòu)體指針引發(fā)的值傳遞思考分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Go并發(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)容展開相關(guān)介紹,感興趣的小伙伴可以參考一下2022-05-05