-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathredis-client.go
95 lines (78 loc) · 1.61 KB
/
redis-client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package main
import (
"fmt"
"github.com/hoisie/redis"
"sync"
"time"
)
var (
client *redis.Client
mutex sync.Mutex
)
func init() {
mutex.Lock()
defer mutex.Unlock()
if client != nil {
return
}
client = &redis.Client{
Addr: "localhost:6379",
Db: 0,
Password: "",
MaxPoolSize: 1000,
}
}
func Sadd(key string, value []byte) (bool, error) {
return client.Sadd(key, value)
}
func Score(key string) (int, error) {
return client.Scard(key)
}
func Members(key string) ([][]byte, error) {
return client.Smembers(key)
}
func Sismember(key string, value []byte) (bool, error) {
return client.Sismember(key, value)
}
/**
* @param key string
* @param val []byte
* @param t int64 means set the timeout
* return error
**/
func Set(key string, val []byte, t int64) error {
return client.Setex(key, t, val)
}
func Get(key string) ([]byte, error) {
return client.Get(key)
}
func main() {
info, _ := Sadd("test", []byte("hello"))
fmt.Println(info)
score, err := Score("test")
if err != nil {
fmt.Println(err.Error())
} else {
fmt.Printf("score:%d\n", score)
}
// for i := 0; i < 100000; i++ {
// Sadd("test", []byte("test:"+string(i)))
// }
result, _ := Score("test")
fmt.Println(result)
members, _ := Members("test")
fmt.Println(len(members))
Set("aa", []byte("show me the code, jackson!!"), 3)
value, _ := Get("aa")
fmt.Println(string(value))
// sleep 3 second later
time.Sleep(3 * time.Second)
aa_result, err := Get("aa")
if err != nil {
fmt.Println(err.Error())
} else {
fmt.Println(aa_result)
}
t, _ := Sismember("test", []byte("test222"))
fmt.Println(t)
}