一.简介
从redis的2.6版本开始,增加了对lua脚本的支持,目前可用的库只有如下几个:
base
libtable
libstring
libmath
libstruct
libcjson
libcmsgpack
libbitop
libredis.sha1hex
function
像在redis的lua脚本中执行os.time()会报错,不支持os类库。
二.生成自增主键
1.lua脚本
local temp = 0
local key = KEYS[1]
local inc = ARGV[1]
local exp = ARGV[2]
if inc == nil then
inc = 1
end
if redis.call('EXISTS',key) == 1 then
temp = redis.call('GET',key) + inc
redis.call('SETEX',key,exp,temp)
return temp
else
temp = temp + inc
redis.call('SETEX',key,exp,temp)
return temp
end
2.通过redis的evalsha调用lua脚本生成自增主键
package com.icheetor.jedis;
import java.util.Arrays;
import j