/
connect.go
129 lines (109 loc) · 2.56 KB
/
connect.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package redisconnect
import (
"log"
"os"
"strings"
"github.com/gomodule/redigo/redis"
// "fmt"
)
var pool *redis.Pool
func InitRedis() {
// init redis connection pool
InitPool()
// bootstramp some data to redis
//InitStore()
}
func InitPool() {
pool = &redis.Pool{
MaxIdle: 80,
MaxActive: 12000,
Dial: func() (redis.Conn, error) {
conn, err := redis.Dial("tcp", "localhost:6379")
if err != nil {
log.Printf("ERROR: fail init redis: %s", err.Error())
os.Exit(1)
}
return conn, err
},
}
}
func InitStore() {
// get conn and put back when exit from method
conn := pool.Get()
defer conn.Close()
macs := []string{"Testkey1 Cisco", "Testkey2 FIBRONICS", "Testkey3 Fujitsu",
"Testkey4 Next", "Testkey5 Hughes"}
for _, mac := range macs {
pair := strings.Split(mac, " ")
Set(pair[0], pair[1])
}
}
func Ping() {
conn := pool.Get()
defer conn.Close()
_, err := redis.String(conn.Do("PING"))
if err != nil {
log.Printf("ERROR: fail ping redis conn: %s", err.Error())
os.Exit(1)
}else{
log.Printf("SUCCESS: Ping done !")
}
}
func Set(key string, val string) error {
conn := pool.Get()
defer conn.Close()
_, err := conn.Do("SET", key, val)
if err != nil {
log.Printf("ERROR: fail set key %s, val %s, error %s", key, val, err.Error())
return err
}
return nil
}
func Get(key string) (string, error) {
conn := pool.Get()
defer conn.Close()
s, err := redis.String(conn.Do("GET", key))
if err != nil {
log.Printf("ERROR: fail get key %s, error %s", key, err.Error())
return "", err
}
return s, nil
}
func Sadd(key string, val string) error {
conn := pool.Get()
defer conn.Close()
_, err := conn.Do("SADD", key, val)
if err != nil {
log.Printf("ERROR: fail add val %s to set %s, error %s", val, key, err.Error())
return err
}
return nil
}
func Smembers(key string) ([]string, error) {
conn := pool.Get()
defer conn.Close()
s, err := redis.Strings(conn.Do("SMEMBERS", key))
if err != nil {
log.Printf("ERROR: fail get set %s , error %s", key, err.Error())
return nil, err
}
return s, nil
}
func Del(key string) (string, error) {
conn := pool.Get()
defer conn.Close()
s, err := redis.String(conn.Do("DEL", key))
if err != nil {
log.Printf("ERROR: fail to delete key %s, error %s", key, err.Error())
return "", err
}
return s, nil
}
// func main(){
// fmt.Println("hi")
// InitRedis()
// Ping()
// Set("jwevfewbnfwejhnfbvw34256236534265342342364536454623", "sandhya")
// Get("jwevfewbnfwejhnfbvw34256236534265342342364536454623")
// Del("jwevfewbnfwejhnfbvw34256236534265342342364536454623")
// }