【Go開源寶藏】Go 語(yǔ)言操作 Redis (一)
1. Redis簡(jiǎn)介
Redis是一個(gè)開源(BSD許可),內(nèi)存存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)服務(wù)器,可用作數(shù)據(jù)庫(kù),高速緩存和消息隊(duì)列代理。支持諸如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、帶范圍查詢的排序集合(sorted sets)、位圖(bitmaps)、hyperloglogs、帶半徑查詢和流的地理空間索引(geospatial indexes)等數(shù)據(jù)結(jié)構(gòu)。
雖然是基于內(nèi)存的存儲(chǔ)系統(tǒng),但是它本身是支持內(nèi)存數(shù)據(jù)的持久化的,而且提供兩種主要的持久化策略:RDB快照和AOF日志。
redis常用方法:
在Redis中,并不是所有的數(shù)據(jù)都一直存儲(chǔ)在內(nèi)存中的。當(dāng)物理內(nèi)存用完時(shí),Redis可以將一些很久沒用到的value交換到磁盤。Redis只會(huì)緩存所有的key的信息,如果Redis發(fā)現(xiàn)內(nèi)存的使用量超過了某一個(gè)閥值,將觸發(fā)swap的操作,Redis根據(jù)
swappability=age*log(size_in_memory)
計(jì)算出哪些key對(duì)應(yīng)的value需要swap到磁盤。然后再將這些key對(duì)應(yīng)的value持久化到磁盤中,同時(shí)在內(nèi)存中清除。這種特性使得Redis可以保持超過其機(jī)器本身內(nèi)存大小的數(shù)據(jù)。
2. Go語(yǔ)言連接Redis
驅(qū)動(dòng):github.com/go-redis/redis
定義 redisClient
var Redis *redis.Client
連接
func connect() { client := redis.NewClient(&redis.Options{ Addr: "127.0.0.1:6379", //Password: "redisPassword", // 無(wú)密碼,就這樣就好了 DB: 3, }) _, err := client.Ping().Result() // 心跳驗(yàn)證 if err != nil { log.Println(err) panic(err) } Redis = client fmt.Println("connect success") }
go-redis包中提供了非常豐富的接口供我們選擇
redis.NewClient 就可以創(chuàng)建一個(gè)redis的client
client.Ping().Result() 進(jìn)行心跳檢測(cè)驗(yàn)證
下一章中我們會(huì)使用go語(yǔ)言對(duì)redis進(jìn)行簡(jiǎn)單的操作。
Go Redis
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。