<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 操作Redis 本文將探討Redis作為非關系數據存儲的一種形式,并展示Go等語言如何與這些服務進行交互。 由于Redis通過簡單的接口支持鍵值存儲,因此它是會話存儲或具有持續時間的臨時數據的理想選擇。為Redis中存儲的數據指定超時的能力非常有價值。本節將探討從配置,查詢到使用自定義排序的基本Redis用法。 ### 實踐 1. 獲取第三方庫: ``` go get gopkg.in/redis.v5 ``` 2. 建立 config.go: ``` package redis import ( "os" redis "gopkg.in/redis.v5" ) // Setup 初始化 redis 連接 func Setup() (*redis.Client, error) { client := redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: os.Getenv("REDISPASSWORD"), DB: 0, // 使用默認 DB }) // 命令返回“PONG”,測試連接是否存活 _, err := client.Ping().Result() return client, err } ``` 3. 建立 exec.go: ``` package redis import ( "fmt" "time" redis "gopkg.in/redis.v5" ) // Exec 執行一些redis操作 func Exec() error { conn, err := Setup() if err != nil { return err } c1 := "value" // 我們可以把任何想要的類型存入key所對應的值 // 當前存入的是key到期的時間 conn.Set("key", c1, 5*time.Second) var result string if err := conn.Get("key").Scan(&result); err != nil { switch err { // 這意味著key找不到對應的值 case redis.Nil: return nil default: return err } } fmt.Println("result =", result) return nil } ``` 4. 建立 sort.go: ``` package redis import ( "fmt" redis "gopkg.in/redis.v5" ) // Sort 執行排序redis操作 func Sort() error { conn, err := Setup() if err != nil { return err } if err := conn.LPush("list", 1).Err(); err != nil { return err } if err := conn.LPush("list", 3).Err(); err != nil { return err } if err := conn.LPush("list", 2).Err(); err != nil { return err } res, err := conn.Sort("list", redis.Sort{Order: "ASC"}).Result() if err != nil { return err } fmt.Println(res) conn.Del("list") return nil } ``` 5. 建立 main.go: ``` package main import "github.com/agtorre/go-cookbook/chapter5/redis" func main() { if err := redis.Exec(); err != nil { panic(err) } if err := redis.Sort(); err != nil { panic(err) } } ``` 6. 這會輸出: ``` result = value [1 2 3] ``` ### 說明 可以看到Redis的操作與MySQL很相似,Scan()等函數都遵循相同的約定從Redis讀取數據映射Go類型。選擇合適的第三方庫可能具有挑戰性,我建議定期調查可用的內容。 本節使用redis包進行基本設置和查詢,執行更復雜的排序功能。與database/sql一樣,你可以通過控制超時,設置連接池大小等形式設置其他配置。Redis本身還提供了許多其他功能,包括Redis群集支持,Zscore和計數器對象,分布式鎖定等。 與前面的章節一樣,我建議使用配置對象,它存儲Redis設置和配置詳細信息,以便于設置操作和提高安全性。 * * * * 學識淺薄,錯誤在所難免。歡迎在群中就本書提出修改意見,以饗后來者,長風拜謝。 Golang中國(211938256) beego實戰(258969317) Go實踐(386056972)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看