因为go是强类型的一门语言,因此,因此经常需要将Golang与redis的数据类型进行对其,这就涉及到类型转换
数据类型之间的转换规则
Do发送args参数,需要对go原始的数据类型进行转换, 转换的规则如下:
GO数据类型 转换为/转换的方法:
[]byte []byte
string string
int, int64 strconv.FormatInt(v)
float64 strconv.FormatFloat(v, 'g', -1, 64)
bool true -> "1", false -> "0"
nil ""
其他类型 fmt.Fprint(w, v)
redis 返回reply 与go的转换规则:
Redis返回类型 Go数据类型
error redis.Error
integer int64
简单string string
大量string []byte 或 nil (如果值不存在).
array []interface{} 或 nil (如果值不存在).
可以使用类型断言,或者reply 提供的帮助函数将interface{]转换为对应类型数据
类型转换
redigo提供了对应的类型转换函数,以方便进行类型转换
例如:
exists, err := redis.Bool(c.Do("EXISTS", "foo"))
if err != nil {
// handle error return from c.Do or type conversion error.
}
Scan函数将数组回复的元素转换为Go类型, 在批量执行的时候,获取结果时,很有用处
var value1 int
var value2 string
reply, err := redis.Values(c.Do("MGET", "key1", "key2"))
if err !