赞
踩
go-redis库设置incr 过期时间使用Multi/exec,Redis是单线程的,因此单个命令始终是原子的,但是来自不同客户端的两个给定命令可以依次执行,例如在它们之间交替执行。但是,Multi/exec能够确保在multi/exec两个语句之间的命令之间没有其他客户端正在执行命令。
package main import ( "fmt" "github.com/go-redis/redis" _ "github.com/jinzhu/gorm/dialects/mysql" "time" ) var rdb *redis.Client func main(){ rdb = redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", // no password set DB: 0, // use default DB }) _,err := rdb.Ping().Result() if err != nil { fmt.Println(err) } pipe := rdb.TxPipeline() incr := pipe.Incr("key") pipe.Expire("key", time.Hour) _, exer := pipe.Exec() if exer != nil { fmt.Println(exer) } fmt.Println(incr.Val()) }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。