golang. 批量擷取redis中的緩衝值

來源:互聯網
上載者:User

21天精品區塊鏈課程免費學習,深入實戰行家帶路,助力開發人員輕鬆玩轉區塊鏈!>>>   

使用redis的pipeline,批量擷取redis中的key值時,報錯,分析發現,批量擷取時,exec後,會返回兩種值:nil 及 redis.Nil,

這種情況下,使用常規的 if err!=nil 的判斷方法判斷錯誤,是會報錯的。

測試代碼:

package mainimport ("github.com/go-redis/redis""log""strconv")func main() {client := redis.NewClient(&redis.Options{Addr:     "localhost:6379",Password: "", // no password setDB:       0,  // use default DBNetwork:  "tcp",PoolSize: 50,})if _, err := client.Ping().Result(); err != nil {panic(err)}pipe := client.Pipeline()log.Println("所有的key都存在:")for i := 0; i < 4; i++ {key := "n:" + strconv.FormatInt(int64(i), 10)pipe.Get(key)}result, err := pipe.Exec()log.Println(result)log.Println(err == nil)log.Println(err == redis.Nil)log.Println("有不存在的key:")for i := 0; i < 5; i++ {key := "n:" + strconv.FormatInt(int64(i), 10)pipe.Get(key)}result, err = pipe.Exec()log.Println(result)log.Println(err == nil)log.Println(err == redis.Nil)defer client.Close()}

運行結果:

可以看到,如果批量擷取的key中,有不存在的key,返回的會是redis.Nil,否則返回的是nil。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.