1:安裝redigogit
go get github.com/garyburd/redigo/redis
2:import redigogithub
import ( "github.com/garyburd/redigo/redis" )
3:鏈接redisredis
c, err := redis.Dial("tcp", "192.168.2.225:6379") if err != nil { fmt.Println("connect to redis err", err.Error()) return } defer c.Close()
4:命令執行tcp
n,err := c.Do("hset","key","field","value") //寫 result,err := redis.Values(c.Do("hgetall","key"))//讀
5:hash常見命令code
hset(key, field, value):向名稱爲key的hash中添加元素field hget(key, field):返回名稱爲key的hash中field對應的value hmget(key, (fields)):返回名稱爲key的hash中field i對應的value hmset(key, (fields)):向名稱爲key的hash中添加元素field hincrby(key, field, integer):將名稱爲key的hash中field的value增長integer hexists(key, field):名稱爲key的hash中是否存在鍵爲field的域 hdel(key, field):刪除名稱爲key的hash中鍵爲field的域 hlen(key):返回名稱爲key的hash中元素個數 hkeys(key):返回名稱爲key的hash中全部鍵 hvals(key):返回名稱爲key的hash中全部鍵對應的value hgetall(key):返回名稱爲key的hash中全部的鍵(field)及其對應的value
6:示例
6.1:hset示例圖片
_, err = c.Do("hset", "myhash", "bike1", "mobike") if err != nil { fmt.Println("haset failed", err.Error()) }
6.2:hget示例element
res, err := c.Do("hget", "myhash", "bike1") fmt.Println(reflect.TypeOf(res)) if err != nil { fmt.Println("hget failed", err.Error()) } else { fmt.Printf("hget value :%s\n", res.([]byte)) }
6.3:hmset/hmgetget
_, err = c.Do("hmset", "myhash", "bike2", "bluegogo", "bike3", "xiaoming", "bike4", "xiaolan") if err != nil { fmt.Println("hmset error", err.Error()) } else { value, err := redis.Values(c.Do("hmget", "myhash", "bike1", "bike2", "bike3", "bike4")) if err != nil { fmt.Println("hmget failed", err.Error()) } else { fmt.Printf("hmget myhash's element :") for _, v := range value { fmt.Printf("%s ", v.([]byte)) } fmt.Printf("\n") } }
6.4:hincrbyhash
_, err = c.Do("hmset", "myhash", "bike2", "bluegogo", "bike3", "xiaoming", "bike4", "xiaolan") if err != nil { fmt.Println("hmset error", err.Error()) } else { value, err := redis.Values(c.Do("hmget", "myhash", "bike1", "bike2", "bike3", "bike4")) if err != nil { fmt.Println("hmget failed", err.Error()) } else { fmt.Printf("hmget myhash's element :") for _, v := range value { fmt.Printf("%s ", v.([]byte)) } fmt.Printf("\n") } }
6.5:hexistsit
isExist, err := c.Do("hexists", "myhash", "tmpnum") if err != nil { fmt.Println("hexist failed", err.Error()) } else { fmt.Println("exist or not:", isExist) }
6.6:hlen
ilen, err := c.Do("hlen", "myhash") if err != nil { fmt.Println("hlen failed", err.Error()) } else { fmt.Println("myhash's len is :", ilen) }
6.7:hkeys
resKeys, err := redis.Values(c.Do("hkeys", "myhash")) if err != nil { fmt.Println("hkeys failed", err.Error()) } else { fmt.Printf("myhash's keys is :") for _, v := range resKeys { fmt.Printf("%s ", v.([]byte)) } fmt.Println() }
6.8:hvals
resValues, err := redis.Values(c.Do("hvals", "myhash")) if err != nil { fmt.Println("hvals failed", err.Error()) } else { fmt.Printf("myhash's values is:") for _, v := range resValues { fmt.Printf("%s ", v.([]byte)) } fmt.Println() }
6.9:hdel
_, err = c.Do("HDEL", "myhash", "tmpnum") if err != nil { fmt.Println("hdel failed", err.Error()) }
6.10:hgetall
result, err := redis.Values(c.Do("hgetall", "myhash")) if err != nil { fmt.Println("hgetall failed", err.Error()) } else { fmt.Printf("all keys and values are:") for _, v := range result { fmt.Printf("%s ", v.([]byte)) } fmt.Println() }
7:結果