GoLangはRedisを使用

3250 ワード

1、Redis優勢性能が極めて高い–Redisが読める速度は110000回/s、書く速度は81000回/s豊富なデータ型である–RedisはバイナリケースのStrings、Lists、Hashes、Sets及びOrdered Setsデータ型操作をサポートする
2、Redisをインストールして公式サイトに行くことができる:https://redis.io/あ、redisのインストール、起動ここではあまり紹介しません
3、redigoオープンソースライブラリのインストールコマンドラインを使用して自動的にインストールするかgithubにダウンロードして手動でインストールすることができる
go get github.com/garyburd/redigo/redis

githubアドレス:https://github.com/garyburd/redigo
4、redigo読み書きredis操作demo
package main

import (
    "encoding/json"
    "fmt"
    "time"

    "github.com/garyburd/redigo/redis"
)

func main() {
    //   redis
    c, err := redis.Dial("tcp", "192.168.151.158:12004")
    if err != nil {
        fmt.Println("Connect to redis error", err)
        return
    } else {
        fmt.Println("Connect to redis ok")
    }
    defer c.Close()

    //     
    _, err = c.Do("AUTH", "cqrm123151qaz2WSX")
    if err != nil {
        fmt.Println("auth failed:", err)
    } else {
        fmt.Println("auth ok:")
    }

    //     
    _, err = c.Do("SET", "gokey", "gokeyvalue")
    if err != nil {
        fmt.Println("redis set failed:", err)
    } else {
        fmt.Println("redis set ok")
    }

    //     
    value, err := redis.String(c.Do("GET", "gokey"))
    if err != nil {
        fmt.Println("redis get failed:", err)
    } else {
        fmt.Printf("Get gokey: %v 
", value) } // key _, err = c.Do("DEL", "gokey") if err != nil { fmt.Println("redis delelte failed:", err) } // value, err = redis.String(c.Do("GET", "gokey")) if err != nil { fmt.Println("redis get failed:", err) } else { fmt.Printf("Get gokey: %v
", value) } // JSON key := "profile" imap := map[string]string{"username": "666", "phonenumber": "888"} jsonvalue, _ := json.Marshal(imap) // JSON n, err := c.Do("SETNX", key, jsonvalue) if err != nil { fmt.Println(err) } if n == int64(1) { fmt.Println("success") } // JSON var imapGet map[string]string valueGet, err := redis.Bytes(c.Do("GET", key)) if err != nil { fmt.Println(err) } // JSON errShal := json.Unmarshal(valueGet, &imapGet) if errShal != nil { fmt.Println(err) } fmt.Println(imapGet["username"]) fmt.Println(imapGet["phonenumber"]) // 6 ret, _ := c.Do("EXPIRE", key, 6) if ret == int64(1) { fmt.Println("success") } // 8 time.Sleep(8 * time.Second) // key is_key_exit, err := redis.Bool(c.Do("EXISTS", key)) if err != nil { fmt.Println("error:", err) } else { fmt.Printf("exists or not: %v
", is_key_exit) } }

「技術型プロジェクトマネージャ」の公衆番号に注目してください.ソフトウェア業界の動態、技術の蓄積、プロジェクト管理理念の文章の共有を得ることができます.「試験経験」メニュー「PMP」、「高項」(情報システム項目管理士)、「CISSP」、「GoLang」を選択して学習資料を入手します.