go redis incr的使用
可用版本: >= 1.0.0
时间复杂度: O(1)
为键 key
储存的数字值加上一。
如果键 key
不存在, 那么它的值会先被初始化为 0
, 然后再执行 INCR
命令。
如果键 key
储存的值不能被解释为数字, 那么 INCR
命令将返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
INCR
命令是一个针对字符串的操作。 因为 Redis 并没有专用的整数类型, 所以键key
储存的值在执行INCR
命令时会被解释为十进制 64 位有符号整数。
返回值
INCR
命令会返回键 key
在执行加一操作之后的值。
代码示例
使用redis驱动"github.com/go-redis/redis/v7"
重点:r.Do("INCR", "n").Result()
go
package main
import (
"fmt"
"github.com/go-redis/redis/v7"
"log"
)
func main() {
redisIP, redisPort := "127.0.0.1", 6379
redisUsername, redisPasswd := "", "123456"
redisDbName := 0
r := connectRedis(redisIP, redisPort, redisUsername, redisPasswd, redisDbName)
_, err := r.Do("INCR", "n").Result()
if err != nil {
log.Fatal(err)
}
}
func connectRedis(IP string, port int, username string, password string, db int) (rdb *redis.Client) {
dbAddr := fmt.Sprintf("%s:%d", IP, port)
rdb = redis.NewClient(&redis.Options{
Username: username,
Addr: dbAddr,
Password: password,
DB: db,
})
_, err := rdb.Ping().Result()
if err != nil {
log.Fatal(err)
}
log.Println("Successfully connected to redis")
return
}