mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-15 16:34:44 +08:00
Merge branch 'master' of https://github.com/duanhf2012/origin
This commit is contained in:
@@ -125,6 +125,42 @@ func (m *RedisModule) TestPingRedis() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *RedisModule) HSetStruct(key string, val interface{}) error {
|
||||||
|
conn, err := m.getConn()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer conn.Close()
|
||||||
|
|
||||||
|
|
||||||
|
_, err = conn.Do("HSET", redis.Args{}.Add(key).AddFlat(val)...)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *RedisModule) HGetStruct(key string, out_val interface{}) error {
|
||||||
|
conn, err := m.getConn()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer conn.Close()
|
||||||
|
|
||||||
|
v, err := redis.Values(conn.Do("HGETALL", key))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = redis.ScanStruct(v, out_val)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func (m *RedisModule) SetString(key, value interface{}) (err error) {
|
func (m *RedisModule) SetString(key, value interface{}) (err error) {
|
||||||
err = m.setStringByExpire(key, value, "-1")
|
err = m.setStringByExpire(key, value, "-1")
|
||||||
|
|
||||||
@@ -185,6 +221,39 @@ func (m *RedisModule) setStringByExpire(key, value, expire interface{}) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *RedisModule) HSetStruct(key string, val interface{}) error {
|
||||||
|
conn, err := m.getConn()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer conn.Close()
|
||||||
|
|
||||||
|
|
||||||
|
_, err = conn.Do("HSET", redis.Args{}.Add(key).AddFlat(val)...)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *RedisModule) HGetStruct(key string, out_val interface{}) error {
|
||||||
|
conn, err := m.getConn()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer conn.Close()
|
||||||
|
|
||||||
|
v, err := redis.Values(conn.Do("HGETALL", key))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = redis.ScanStruct(v, out_val)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
func (m *RedisModule) SetStringMap(mapInfo map[interface{}]interface{}) (err error) {
|
func (m *RedisModule) SetStringMap(mapInfo map[interface{}]interface{}) (err error) {
|
||||||
err = m.setMuchStringByExpire(mapInfo, "-1")
|
err = m.setMuchStringByExpire(mapInfo, "-1")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -24,13 +24,29 @@ func Test_Example(t *testing.T) {
|
|||||||
module.SetString(1000,2*1000)
|
module.SetString(1000,2*1000)
|
||||||
module.SetStringExpire("key2","value2","60")
|
module.SetStringExpire("key2","value2","60")
|
||||||
|
|
||||||
//支持直接存储struct数据
|
//支持直接存储struct数据(json string)
|
||||||
jsonData := struct{
|
jsonData := struct{
|
||||||
A string
|
A string
|
||||||
B string
|
B string
|
||||||
}{"Aaaa","Bbbb"}
|
}{"Aaaa","Bbbb"}
|
||||||
module.SetStringJSON("key3",&jsonData)
|
module.SetStringJSON("key3",&jsonData)
|
||||||
|
|
||||||
|
// struct 2 redis hash
|
||||||
|
a := struct{
|
||||||
|
A string `redis:"a"`
|
||||||
|
B int `redis:"b"`
|
||||||
|
}{
|
||||||
|
"ccc",
|
||||||
|
1,
|
||||||
|
}
|
||||||
|
module.HSetStruct("skey", &a)
|
||||||
|
a.A = "xx"
|
||||||
|
module.HGetStruct("skey", &a)
|
||||||
|
if a.A == "xx"{
|
||||||
|
fmt.Println("struct 2 hash failed.")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//支持存储map数据结构,map中的key与value与redis的key,value对象
|
//支持存储map数据结构,map中的key与value与redis的key,value对象
|
||||||
mapData := map[interface{}]interface{}{}
|
mapData := map[interface{}]interface{}{}
|
||||||
mapData["key4"] = "value4"
|
mapData["key4"] = "value4"
|
||||||
|
|||||||
Reference in New Issue
Block a user