redis基本的key/value操作,指的是针对value值的类型为字符串或者数字类型的读写操作。
golang redis常用函数列表:
- Set - 设置一个key的值
- Get - 查询key的值
- GetSet - 设置一个key的值,并返回这个key的旧值
- SetNX - 如果key不存在,则设置这个key的值
- MGet - 批量查询key的值
- MSet - 批量设置key的值
- Incr,IncrBy,IncrByFloat - 针对一个key的数值进行递增操作
- Decr,DecrBy - 针对一个key的数值进行递减操作
- Del - 删除key操作,可以批量删除
- Expire - 设置key的过期时间
1.Set
设置一个key的值
// 第三个参数代表key的过期时间,0代表不会过期。
err := client.Set("key", "value", 0).Err()
if err != nil {
panic(err)
}
2.Get
查询key的值
// Result函数返回两个值,第一个是key的值,第二个是错误信息
val, err := client.Get("key").Result()
// 判断查询是否出错
if err != nil {
panic(err)
}
fmt.Println("key", val)
3.GetSet
设置一个key的值,并返回这个key的旧值
// Result函数返回两个值,第一个是key的值,第二个是错误信息
oldVal, err := client.GetSet("key", "new value").Result()
if err != nil {
panic(err)
}
// 打印key的旧值
fmt.Println("key", oldVal)
4.SetNX
如果key不存在,则设置这个key的值
// 第三个参数代表key的过期时间,0代表不会过期。
err := client.SetNX("key", "value", 0).Err()
if err != nil {
panic(err)
}
5.MGet
批量查询key的值
// MGet函数可以传入任意个key,一次性返回多个值。
// 这里Result返回两个值,第一个值是一个数组,第二个值是错误信息
vals, err := client.MGet("key1", "key2", "key3").Result()
if err != nil {
panic(err)
}
fmt.Println(vals)
6.MSet
批量设置key的值
err := client.MSet("key1", "value1", "key2", "value2", "key3", "value3").Err()
if err != nil {
panic(err)
}
7.Incr,IncrBy
针对一个key的数值进行递增操作
// Incr函数每次加一
val, err := client.Incr("key").Result()
if err != nil {
panic(err)
}
fmt.Println("最新值", val)
// IncrBy函数,可以指定每次递增多少
val, err := client.IncrBy("key", 2).Result()
if err != nil {
panic(err)
}
fmt.Println("最新值", val)
// IncrByFloat函数,可以指定每次递增多少,跟IncrBy的区别是累加的是浮点数
val, err := client.IncrByFloat("key", 2).Result()
if err != nil {
panic(err)
}
fmt.Println("最新值", val)
8.Decr,DecrBy
针对一个key的数值进行递减操作
// Decr函数每次减一
val, err := client.Decr("key").Result()
if err != nil {
panic(err)
}
fmt.Println("最新值", val)
// DecrBy函数,可以指定每次递减多少
val, err := client.DecrBy("key", 2).Result()
if err != nil {
panic(err)
}
fmt.Println("最新值", val)
9.Del
删除key操作,支持批量删除
// 删除key
client.Del("key")
// 删除多个key, Del函数支持删除多个key
err := client.Del("key1", "key2", "key3").Err()
if err != nil {
panic(err)
}
10.Expire
设置key的过期时间,单位秒
client.Expire("key", 3)