我有这样一个地图,我想使用redigo保存/检索它:
animals := map[string]bool{
"cat": true,
"dog": false,
"fox": true,
}
地图的长度可能会有所不同。
我尝试了以下这些函数:
func SetHash(key string, value map[string]bool) error {
conn := Pool.Get()
defer conn.Close()
_, err := conn.Do("HMSET", key, value)
if err != nil {
return fmt.Errorf("error setting key %s to %s: %v", key, value, err)
}
return err
}
func GetHash(key string) (map[string]bool, error) {
conn := Pool.Get()
defer conn.Close()
val, err := conn.Do("HGETALL", key)
if err != nil {
fmt.Errorf("error setting key %s to %s: %v", key, nil, err)
return nil, err
}
return val, err
}
但是无法正确生成 GetHash
。我已经检查了文档中的示例,但没有帮助。因此,希望您能提供一个有效的示例。
SetHash
中的键设置超时时间? - Smnconn.Do("EXPIRE", key, secs)
。请参阅 https://redis.io/commands/expire。最好使用 pipelining 进行操作: - LeoMurillo