go redis incr的使用

Posted BlingblingFu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go redis incr的使用相关的知识,希望对你有一定的参考价值。

声明:本文CSDN作者原创投稿文章,未经许可禁止任何形式的转载,原文链接

文章目录

可用版本: >= 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()

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

以上是关于go redis incr的使用的主要内容,如果未能解决你的问题,请参考以下文章

go redis incr的使用

go redis incr的使用

Go开源宝藏Go 语言操作 Redis

使用 GET 和 INCR 对 redis 进行乐观锁定

使用Redis中的incr实行自增,来实现订单号

redis加锁