diff --git a/sysmodule/redismodule/redismodule.go b/sysmodule/redismodule/redismodule.go index cf1b848..2dc3909 100644 --- a/sysmodule/redismodule/redismodule.go +++ b/sysmodule/redismodule/redismodule.go @@ -185,6 +185,39 @@ func (m *RedisModule) setStringByExpire(key, value, expire interface{}) error { 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) { err = m.setMuchStringByExpire(mapInfo, "-1") return