使用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-08
Golang實(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-10
Go結(jié)構(gòu)體指針引發(fā)的值傳遞思考分析
這篇文章主要為大家介紹了Go結(jié)構(gòu)體指針引發(fā)的值傳遞思考分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
go語(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-05
Go并發(fā)編程結(jié)構(gòu)體多字段原子操作示例詳解
這篇文章主要為大家介紹了Go并發(fā)編程結(jié)構(gòu)體多字段原子操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Go?函數(shù)中獲取調(diào)用者的函數(shù)名和文件名及行號(hào)
這篇文章主要介紹了Go?函數(shù)中獲取調(diào)用者的函數(shù)名和文件名及行號(hào),文章圍主題詳細(xì)內(nèi)容展開(kāi)相關(guān)介紹,感興趣的小伙伴可以參考一下2022-05-05

