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にダウンロードして手動でインストールすることができる
githubアドレス:https://github.com/garyburd/redigo
4、redigo読み書きredis操作demo
「技術型プロジェクトマネージャ」の公衆番号に注目してください.ソフトウェア業界の動態、技術の蓄積、プロジェクト管理理念の文章の共有を得ることができます.「試験経験」メニュー「PMP」、「高項」(情報システム項目管理士)、「CISSP」、「GoLang」を選択して学習資料を入手します.
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」を選択して学習資料を入手します.