Go語言基礎(chǔ)之操作Redis_第1頁
Go語言基礎(chǔ)之操作Redis_第2頁
Go語言基礎(chǔ)之操作Redis_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Go語?基礎(chǔ)之操作RedisGo語?操作Redis在項?開發(fā)中redis的使?也?較頻繁,本?介紹了Go語?如何操作Redis。Redis介紹Redis是?個開源的內(nèi)存數(shù)據(jù)庫,Redis提供了5種不同類型的數(shù)據(jù)結(jié)構(gòu),很多業(yè)務(wù)場景下的問題都可以很?然地映射到這些數(shù)據(jù)結(jié)構(gòu)上。除此之外,通過復(fù)制、持久化和客戶端分?等特性,我們可以很?便地將Redis擴展成?個能夠包含數(shù)百GB數(shù)據(jù)、每秒處理上百萬次請求的系統(tǒng)。Redis?持的數(shù)據(jù)結(jié)構(gòu)Redis?持諸如字符串(strings)、哈希(hashes)、列表(list)s、集合(sets)、帶范圍查詢的排序集合(sortedset)、s位圖(bitmaps)、hyperloglogs、帶半徑查詢和流的地理空間索引等數(shù)據(jù)結(jié)構(gòu)(geospatialindexes)。Redis應(yīng)?場景緩存系統(tǒng),減輕主數(shù)據(jù)庫(MySQL)的壓?。計數(shù)場景,?如微博、抖?中的關(guān)注數(shù)和粉絲數(shù)。熱門排?榜,需要排序的場景特別適合使?ZSET。利?LIST可以實現(xiàn)隊列的功能。Redis與Memcached?較Memcached中的值只?持簡單的字符串,Reids?持更豐富的5中數(shù)據(jù)結(jié)構(gòu)類型。Redis的性能?Memcached好很多Redis?持RDB持久化和AOF持久化。Redis?持master/slave模式。Go操作Redis安裝goget-u/go-redis/redis連接//聲明?個全局的redisdb變量varredisdb*redis.Client//初始化連接funcinitClient()(errerror){redisdb=redis.NewClient(&redis.Options{"lAddr:ocalhost:6379","Password:,"http://nopasswordset0,//DB:usedefaultDB})_,err=redisdb.Ping().Result()iferr!=nil{returnerr}returnnil}基本使?set/get?例funcredisExample(){err:="sredisdb.Set(core",100,0).Err()iferr!=nil{"sfmt.Printf(etscorefailed,err:%v\n")return}val,err"s:=co)r.redisdb.Get(e"Result()iferr!=nil{"gfmt.Printetscorefa(iled,,err)err:%v\n"return}fmt.Println("score",val)val2,err"n:=am)e."redisdb.Get(Result()iferr==redis.Nil{"fmt.Println(nameelsei}ferr!=nil{"gfmt.Printf(etnamefailed,,errerr:%v\n")doesnot)exist"returnelse}{"fmt.Println(name",val2)}}zset?例funcredisExample2(){zsetKey"lan:=guage_rank"languages:=[]*redis.Z{&redis.Z{Score:90.0,Member:"Golang"},&redis.Z{Score:98.0,Member:"Java"},&redis.Z{Score:95.0,Member:"Python"},&redis.Z{Score:97.0,Member:"JavaScript"},&redis.Z{Score:99.0,Member:"C/C++"},}//ZADDnum,err:=redisdb.ZAdd(zsetKey,languages...).Result()iferr!=nil{"zfmt.Printf(addfailed,,ererr:%v\n"r)return}fmt.Printf("zadd%d,succ.\n"num)//把Golang的分數(shù)加10newScore,err:=redisdb.ZIncrBy(z10,."0Gol)a.nRge"sult()setKey,iferr!=nil{"zfmt.Printf(incrbyfailed,,err)err:%v\n"return}fmt.Printf("Golang'sscore,isnew%fSconow.\n"re)//取分數(shù)最?的3個ret,err:=redisdb.ZRevRangeWi0,2).ResulthScores(z()setKey,iferr!=nil{"zfmt.Printf(revrangefailed,,err)err:%v\n"return}for_,z:=rangeret{fmt.Println(z.Member,z.Score)}//取95~100分的op:=&redis.ZRangeBy{"9,5"Min:"10,0Max:"}ret,err=redisdb.ZRangeByScoreWithScores(zsetKey,op).Result()iferr!=nil{"zfmt.Printf(rangebyscorefailed,,err)err:%v\n"return}for_,z:=rangeret{fmt.Println(z.Member,z.Score)}}輸出結(jié)果如下:$./06redis_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論