golangのredis入門:hash表
4567 ワード
import (
"fmt"
"github.com/garyburd/redigo/redis"
)
/*
hash :
hset hash field value hash field value
, , hash
eg:
127.0.0.1:6379> hset website google www.g.cn
(integer) 1
127.0.0.1:6379> hget website google
"www.g.cn"
hsetnx hash field value field , value
field value
eg:
127.0.0.1:6379> hsetnx database nosql redis
(integer) 1
127.0.0.1:6379> hsetnx database nosql mongo
(integer) 0
127.0.0.1:6379> hget database nosql
"redis"
hget hash field
eg:
127.0.0.1:6379> hget database nosql
"redis"
127.0.0.1:6379> hget data redis
(nil)
hexists hash field field hash
eg:
127.0.0.1:6379> hexists database nosql
(integer) 1
127.0.0.1:6379> hexists database redis
(integer) 0
hdel hash field ... hash , 。
eg:
127.0.0.1:6379> hset database sql mysql
(integer) 1
127.0.0.1:6379> hdel database sql
(integer) 1
127.0.0.1:6379> hdel database sql nosql
(integer) 1
hlen key key
eg:
127.0.0.1:6379> hlen database
(integer) 0
hstrlen key field key field
eg:
127.0.0.1:6379> hset database sql mysql
(integer) 1
127.0.0.1:6379> hstrlen database sql
(integer) 5
hincrby key field increment key field increment
field hincrby
eg:
127.0.0.1:6379> hset add one 1
(integer) 1
127.0.0.1:6379> hincrby add one 1000
(integer) 1001
hincrbyfloat key field increment key field increment
eg:
127.0.0.1:6379> hincrby add one 1000
(integer) 1001
127.0.0.1:6379> hincrbyfloat add one 99.555555
"1100.55555500000000002"
hmset key field value [field value …] field-value( - ) key 。
eg:
127.0.0.1:6379> hmset fruit key1 apple key2 banana key3 orange
OK
hmget key field [field …] key , 。
eg:
127.0.0.1:6379> hmget fruit key1 key2 key3
1) "apple"
2) "banana"
3) "orange"
hkeys key key 。
eg:
127.0.0.1:6379> hkeys fruit
1) "key1"
2) "key2"
3) "key3"
hvals key key
eg:
127.0.0.1:6379> hvals fruit
1) "apple"
2) "banana"
3) "orange"
hgetall key key , 。
eg:
127.0.0.1:6379> hgetall fruit
1) "key1"
2) "apple"
3) "key2"
4) "banana"
5) "key3"
6) "orange"
*/
func main() {
conn, err := redis.Dial("tcp", "127.0.0.1:6379")
if err != nil {
fmt.Println("conn error: ", err)
}
defer conn.Close()
// hset
_, err = conn.Do("hset", "website", "google", "www.google.com")
if err != nil {
fmt.Println("hset error : ", err)
}
// hmset
_, err = conn.Do("hmset", "website", "baidu", "www.baidu.com", "qq", "www.qq.com")
if err != nil {
fmt.Println("hmset error:", err)
}
// hgetall
res, err := redis.StringMap(conn.Do("hgetall", "website"))
if err == nil {
fmt.Println(res)
}else {
fmt.Println("hgetall error: ", err)
}
// hvals
rs, err := redis.Strings(conn.Do("hvals", "website"))
if err == nil {
fmt.Println(rs)
}else {
fmt.Println(err)
}
// hkeys
rk, err := redis.Strings(conn.Do("hkeys", "website"))
if err == nil {
fmt.Println(rk)
}else {
fmt.Println(err)
}
// hstrlen
l, err := redis.Int(conn.Do("hstrlen", "website", "google"))
if err == nil {
fmt.Println(l)
}else {
fmt.Println(err)
}
// hlen
l, err = redis.Int(conn.Do("hlen", "website"))
if err == nil {
fmt.Println(l)
}else {
fmt.Println(err)
}
}