golangのredis入門:string
4477 ワード
package main
import (
"fmt"
"github.com/garyburd/redigo/redis"
)
/*
redis string
exists key
set key value ex time
eg:
127.0.0.1:6379> set a 444 ex 10
setnx key value key , key value
eg:
127.0.0.1:6379> setnx a 333
(integer) 1
127.0.0.1:6379> get a
"333"
setex key seconds value key value key seconds key
eg:
127.0.0.1:6379> setex a 3 bb
OK
ttl key
127.0.0.1:6379> ttl a
(integer) -2
psetex key milliseconds value setex , 。
eg:
127.0.0.1:6379> psetex a 10000 ccccccc
OK
127.0.0.1:6379> ttl a
(integer) 8
127.0.0.1:6379> ttl a
(integer) 7
getset key value key value vkey
strlen key key
append key value key key value
eg:
127.0.0.1:6379> strlen a
(integer) 3
127.0.0.1:6379> append a bbbb
(integer) 7
setrange key offset value , offset , value
O(M) M value
eg:
127.0.0.1:6379> get a
"eeebbbb"
127.0.0.1:6379> setrange a 3 fff
(integer) 7
127.0.0.1:6379> get a
"eeefffb"
127.0.0.1:6379> setrange a 77 kkk
(integer) 80
127.0.0.1:6379> get a
"eeefffb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00kkk"
getrange key start end key , start end ( start end )。
, -1 , -2 ,
O(n) N 。
, start
incr key key
eg:
127.0.0.1:6379> set c 10
OK
127.0.0.1:6379> incr c
(integer) 11
incrby key increment increment
eg:
127.0.0.1:6379> set c 10
OK
127.0.0.1:6379> incr c
(integer) 11
127.0.0.1:6379> incrby c 10
(integer) 21
incrbyfloat key increment
INCRBYFLOAT 。
eg:
127.0.0.1:6379> set f 64.5
OK
127.0.0.1:6379> incrbyfloat f 22.1
"86.6"
decr key key 1 key , key 0 decr
eg:
127.0.0.1:6379> decr c
(integer) 20
mset key value key value key value
msetnx key value key value ,
, MSETNX 。
msetnx , , ,
mget key , 。
*/
func main() {
conn, err := redis.Dial("tcp", "127.0.0.1:6379")
if err != nil {
fmt.Println("connect redis error: ", err)
return
}
defer conn.Close()
// set
_, err = conn.Do("SET", "language", "goalng")
if err != nil {
fmt.Println("set error: ", err)
}
// get
r, err := redis.String(conn.Do("GET", "language"))
if err == nil {
fmt.Println(r)
}
// mset
_, err = conn.Do("MSET", "name", "zhangsan", "age", 22)
if err != nil {
fmt.Println("mset error: ", err)
}
// mget
mr, err := redis.Strings(conn.Do("MGET", "name", "age"))
fmt.Println(mr[0])
hr, err := redis.StringMap(conn.Do("MGET", "name", "age"))
fmt.Println(hr)
// incr
conn.Do("incr", "age")
age, err := redis.String(conn.Do("GET", "age"))
if err == nil {
fmt.Println(age)
}
// getrange
rg, err := redis.String(conn.Do("getrange", "name", 1, 3))
if err == nil {
fmt.Println("name getrange 1-3: ", rg)
}
conn.Do("msetnx", "name", "zhang", "age", 18)
ch, err := redis.StringMap(conn.Do("mget", "name", "age"))
fmt.Println("msetnx key ")
fmt.Println(ch)
}