golang搭建http使用redis lua实现电商秒杀代码
代码语言:golang
所属分类:其他
代码描述:golang搭建http使用redis lua实现电商秒杀代码
代码标签: golang http redis lua 电商 秒杀 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
package main import ( "fmt" "github.com/gin-gonic/gin" "github.com/go-redis/redis" "math/rand" "net/http" "strconv" "time" ) var redisDb *redis.Client var luaScript = ` local userId = KEYS[1]; local goodKey = KEYS[2]; local stock = KEYS[3]; local userExit = redis.call("sismember",goodKey,userId); if tonumber(userExit) == 1 then return 2; end local num = redis.call("get",stock); if tonumber(num) <= 0 then return 3; else redis.call("decr",stock); redis.call("sadd",goodKey,userId); end return 1;` var evalSha string func init() { initRedisClient() } func initRedisClient() { redisDb = redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", DB: 0, }) var err error evalSha, err = redisDb.ScriptLoad(luaScript).Result() if err != nil { panic(err) } } .........完整代码请登录后点击上方下载按钮下载查看
网友评论0