redishandler.go
2.87 KB
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
package redishandler
import (
"HttpServer/conf"
"common/logger"
"common/redis"
"encoding/json"
"errors"
"strconv"
)
const USER_TOKEN_KEY = "login_token"
var gRedis *redis.RedisClient = nil
func GetRedisClient() *redis.RedisClient {
return gRedis
}
type TestInfo struct {
Gold int64 //金币
Head string //头像地址
NickName string //昵称
Highestlv int //当前最高猫等级
Uuid int //uuid
}
type Mytest struct {
Test1 int
M_userInfo map[int]int
}
func TestMyredis() {
//testmap
var test Mytest
test.Test1 = 1
test.M_userInfo = make(map[int]int)
test.M_userInfo[1] = 1
test.M_userInfo[1] = 2
test.M_userInfo[2] = 2
ddt, _ := json.Marshal(&test)
gRedis.SetString("testddt", string(ddt))
logger.Info("testddt test=%v.ddt=%v", test, string(ddt))
rest, err := gRedis.GetString("testddt")
if err != nil {
logger.Error("TestMyredis ddtfailed err=%v", err)
} else {
var restest Mytest
err = json.Unmarshal([]byte(rest), &restest)
logger.Info("testddt rest=%v,restest=%v", rest, restest)
}
//gRedis.HSet("luheng", "luhengsb", "22")
//gRedis.HSet("luheng", "luhengbb", "33")
var rinfo TestInfo
rinfo.Gold = 100
rinfo.Highestlv = 99
rinfo.Head = "sb"
rinfo.NickName = "sd"
rinfo.Uuid = 1004
rinfostr, _ := json.Marshal(&rinfo)
err = gRedis.Zadd("luhengtest", float64(rinfo.Gold), string(rinfostr))
if err != nil {
logger.Info("TestMyredis failed err=%v", err)
} else {
logger.Info("TestMyredis success rinfostr=%v", string(rinfostr))
}
rinfo.Gold = 1000
rinfo.Highestlv = 99
rinfo.Head = "sb1"
rinfo.NickName = "sd1"
rinfo.Uuid = 1005
rinfostr, _ = json.Marshal(&rinfo)
err = gRedis.Zadd("luhengtest", float64(rinfo.Gold), string(rinfostr))
rinfo.Gold = 10000
rinfo.Highestlv = 99
rinfo.Head = "sb2"
rinfo.NickName = "sd2"
rinfo.Uuid = 1006
rinfostr, _ = json.Marshal(&rinfo)
err = gRedis.Zadd("luhengtest", float64(rinfo.Gold), string(rinfostr))
vv, err := gRedis.ZRevRangewithIndex("luhengtest", 0, -1)
if err == nil {
for k, v := range vv {
rinfobyte, _ := v.([]byte)
var rinfo TestInfo
//logger.Info("TestMyredis ori=%v", string(v.([]byte)))
err := json.Unmarshal(rinfobyte, &rinfo)
if err == nil {
logger.Info("TestMyredis k=%v,v=%v", k, rinfo)
} else {
logger.Info("TestMyredis isbigsb err=%v", err)
}
}
} else {
logger.Info("test is err=%v", err)
}
}
func Init() error {
redis_cfg := conf.GetRedisConf()
if gRedis = redis.NewRedisClient(redis_cfg.Host, redis_cfg.Password, redis_cfg.Db); gRedis == nil {
return errors.New("initRedis error")
}
logger.Info("init redis success!")
//TestMyredis()
return nil
}
/*
加载token
*/
func LoadPlayerTokenFromRedis(uid int) (string, error) {
token, err := gRedis.HGet(USER_TOKEN_KEY, strconv.Itoa(uid))
if err != nil {
logger.Notic("LoadPlayerTokenFromRedis failed uid:%v err%v", uid, err)
return "", err
}
return token, err
}