好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Go語言開發中redis的使用詳解

Go語言開發中redis的使用詳解

熱門標簽:阿里云ai電話機器人 鄭州亮點科技用的什么外呼系統 黃岡人工智能電銷機器人哪個好 建造者2地圖標注 釘釘有地圖標注功能嗎 惠州電銷防封電話卡 浙江高頻外呼系統多少錢一個月 汕頭小型外呼系統 濱州自動電銷機器人排名

前段時間因為忙一些其它的事情,分享的有些少,最近學習一下redis在Go語言開發中的應用。

一、理論知識

Redis是一個開源的、使用C語言編寫的、支持網絡交互的、可基于內存也可持久化的Key-Value數據庫。

Redis 優勢

性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。

豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作。

原子 – Redis的所有操作都是原子性的,同時Redis還支持對幾個操作全并后的原子性執行。

豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。

Redis與其他key-value存儲有什么不同?

Redis有著更為復雜的數據結構并且提供對他們的原子性操作,這是一個不同于其他數據庫的進化路徑。Redis的數據類型都是基于基本數據結構的同時對程序員透明,無需進行額外的抽象。

Redis運行在內存中但是可以持久化到磁盤,所以在對不同數據集進行高速讀寫時需要權衡內存,因為數據量不能大于硬件內存。在內存數據庫方面的另一個優點是,相比在磁盤上相同的復雜的數據結構,在內存中操作起來非常簡單,這樣Redis可以做很多內部復雜性很強的事情。同時,在磁盤格式方面他們是緊湊的以追加的方式產生的,因為他們并不需要進行隨機訪問。

二、使用:

在開發過程中我們使用到了開源庫redis如下

github地址

https://github.com/garyburd/redigo

文檔地址:

http://godoc.org/github.com/garyburd/redigo/redis

1、數據庫的連接

func connDB() (c redis.Conn, err error) {
  db, err := redis.Dial("tcp", "127.0.0.1:6379")
  if err != nil {
    fmt.Println("Connect to redis error", err)
    return
  }
  return db, err
}

2、寫入

func saveToDB(c redis.Conn) {
  _, err := c.Do("SET", "name", "qiuqiu", "EX", "50")
  if err != nil {
    fmt.Println("redis set failed:", err)
  } else {
    fmt.Println("save success")
  }
}

//批量寫入
_, err := c.Do("MSET", "name", "superWang", "SEX", "F", "EX", "50")
  if err != nil {
    fmt.Println("redis set failed:", err)
  } else {
    fmt.Println("save success")
  }

//tips:EX是這個值的過期時間

3、讀取

func readFromDB(c redis.Conn) {
  username, err := redis.String(c.Do("GET", "name"))
  if err != nil {
    fmt.Println("redis get failed:", err)
  } else {
    fmt.Printf("Get mykey: %v \n", username)
  }

}
//批量讀取
func readFromDB(c redis.Conn) {
  username, err := redis.Strings(c.Do("MGET", "SEX", "name"))
  if err != nil {
    fmt.Println("redis get failed:", err)
  } else {
    fmt.Printf("Get mykey: %v \n", username)
  }

}

4、刪除

func delFromDB(c redis.Conn) {
  _, err := c.Do("DEL", "name", "SEX")
  if err != nil {
    fmt.Println("redis delete failed:", err)
  } else {
    fmt.Println("delete success")
  }
}

5、設置keys 過期時間

在寫入的時候如果設置了EX的時間,則當前的key過期時間為設置時間,不設置則當前的key永久有效

6、讀寫json到redis

//寫json
func saveJsonDataToDB(c redis.Conn) {
  imap := map[string]string{"name": "waiwaigo", "phone": "13498739038"}
  value, _ := json.Marshal(imap)
  n, err := c.Do("SETNX", "jsonkey", value)
  if err != nil {
    fmt.Println(err)
  }
  if n == int64(1) {
    fmt.Println("success")
  }
}

//讀json
func readJsonFromDB(c redis.Conn) {
  var imapGet map[string]string
  valueGet, err := redis.Bytes(c.Do("GET", "jsonkey"))
  if err != nil {
    fmt.Println(err)
  }

  errShal := json.Unmarshal(valueGet, imapGet)
  if errShal != nil {
    fmt.Println(err)
  }
  fmt.Println(imapGet["name"])
  fmt.Println(imapGet["phone"])
}

7、列表操作,存入一組數據

//存列表
func saveListToDB(c redis.Conn) {
  _, err := c.Do("lpush", "username", "zhangsan")
  if err != nil {
    fmt.Println("redis set failed:", err)
  }

  _, err = c.Do("lpush", "username", "lisi")
  if err != nil {
    fmt.Println("redis set failed:", err)
  }
  _, err = c.Do("lpush", "username", "wangwu")
  if err != nil {
    fmt.Println("redis set failed:", err)
  }
}

//讀列表
func readListFromDB(c redis.Conn) {
  values, _ := redis.Values(c.Do("lrange", "username", "0", "2"))
  fmt.Printf("count%d", len(values))
  for _, v := range values {
    fmt.Println(string(v.([]byte)))
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 在Golang中使用Redis的方法示例
  • Go語言中通過Lua腳本操作Redis的方法
  • go語言操作redis連接池的方法
  • Go語言操作redis用法實例

標簽:阿壩 滄州 瀘州 泰安 晉中 東營 駐馬店 昭通

巨人網絡通訊聲明:本文標題《Go語言開發中redis的使用詳解》,本文關鍵詞  語言,開發,中,redis,的,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言開發中redis的使用詳解》相關的同類信息!
  • 本頁收集關于Go語言開發中redis的使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 6080新觉伦影视手机版| 午夜a级毛片| Asmr色诱娇喘呻吟网站| 炮灰的自我修养| 中国国产一级A片| 国产成人一区二区三区电影| 大陆5g影院天天5g天天爽入口| 一区二区三区视频免费观看| 将军边走边挺进她体内| 娇妻的肉欲沉沦1一30| 18videosexcartoon| 武侠黄色小说| 久久99国产精品久久| 夜夜春高潮爽a∨片日韩欧美| 日本一级特黄大片吃奶| 青年大学习第十季第六期答案| 动漫无遮羞与无删减区别| 永久黄网色视频免费| 将军含着她的乳尖H无遮挡动漫| 中国一级特黄毛片大片| 午夜理论片福利电影| 欧美激情电影在线| 久久久久久黃色網站免費| 少年熟妇高辣h文系列| 亚洲欧美久久精品1区2区| 色护士精品影院www| 男人日女人的逼| 张柏芝全套94张未删减版| 福利一区二区在线| 秋霞最新午夜伦伦A片黑狐| 电影巜老年性事》电| 啪啪的视频| H狠狠躁死你h八十年代| SSYY668成人影片| 回复术士的重来人生2季完整版| 日本娇小videos精品| 我被两个男的cao尿了| 小心??入????视频日本| free性chinese中国hd| 欧美尻逼| 波多野人妻HD040|