github地址 : https://github.com/jiangshengxin/golang-redis-str-array
?
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
  
package main
 
import (
    "github.com/garyburd/redigo/redis"
    "github.com/elliotchance/phpserialize"
    "os"
)
 
//缓存
var Cache redis.Conn
 
func main()  {
    var err error
    //--------------------缓存初始化开始
    Cache, err = redis.Dial("tcp""127.0.0.1:6379")
    if err != nil {
 
    }
    //-------------------缓存初始化结束
    reg := CacheSet("name""小明","100")
    println(reg)
    os.Exit(1)
    /*
 
    //打印变量类型
    fmt.Println("type:", reflect.TypeOf(CONFIG))
    os.Exit(1)
 
    //添加字符串值
    reg := CacheSet("name", "小明","100")
    println(reg)
    os.Exit(1)
 
    //查询字符串值
    key := CacheGet("name")
    println(key)
    os.Exit(1)
 
    //关闭链接
    defer Cache.Close()
    */
}
 
 
 
/*
 * 设置添加数组缓存
 */
func CacheSetArray(key string, val map[string]string , past string) (bool) {
 
    out, err := phpserialize.Marshal(val, nil)
    if err != nil {
        return false
    }
 
    //缓存前缀
    CACHE_PREFIX := "CACHE_PREFIX"
 
    _, err = Cache.Do("SET", CACHE_PREFIX + ":" + key, string(out),"EX",past)
 
    if err != nil {
        return false
    }
 
    return true
 
}
 
 
 
/*
 * 设置添加字符串缓存
 */
func CacheSet(key, val,past string) (bool) {
 
    out, err := phpserialize.Marshal(val, nil)
    if err != nil {
        return false
    }
 
    //缓存前缀
    CACHE_PREFIX := "CACHE_PREFIX"
 
    _, err = Cache.Do("SET", CACHE_PREFIX + ":" + key, string(out),"EX",past)
 
    if err != nil {
        return false
    }
 
    return true
 
}
 
 
/*
 * 查询查询数组缓存
 */
func CacheGetArray(key string) (map[string]string) {
    valNew := make(map[string]string)
    //缓存前缀
    CACHE_PREFIX := "CACHE_PREFIX"
 
    val, err := redis.String(Cache.Do("GET", CACHE_PREFIX + ":" + key))
 
    if err != nil {
        valNew["null"] = "null"
    else {
        //反序列化
        valInterFace, err := phpserialize.UnmarshalAssociativeArray([]byte(val))
        if err != nil {
            valNew["null"] = "null"
        else {
            //转map[string]string
            for k, v := range valInterFace {
                valNew[k.(string)] = v.(string)
            }
            valNew["null"] = "false"
        }
    }
    return map[string]string(valNew)
 
}
 
 
 
/*
 * 查询查询字符串缓存
 */
func CacheGet(key string) (string) {
 
    //缓存前缀
    CACHE_PREFIX := "CACHE_PREFIX"
 
    val, err := redis.String(Cache.Do("GET", CACHE_PREFIX + ":" + key))
    var valNew string
 
    if err != nil {
        valNew = "null"
    else {
        //反序列化
        phpserialize.Unmarshal([]byte(val), &valNew)
    }
    return valNew
 
}
 
 
 
  


---------------------------------------------------------------------------------------------
不忘初心 方得始终!

唯有志存高远,方能风行天下。

道之所存,虽千万人吾往矣! 情之所钟,虽千万里吾念矣~

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。