Redis Incr 命令将 key 中储存的数字值增一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
redis 127.0.0.1:6379> INCR KEY_NAME
java使用lua语法实现自增并设置有效时间:
//ttl :当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。否则,以秒为单位,返回 key 的剩余生存时间。
String script = " local current = redis.call('incr',KEYS[1]); " +
" local t = redis.call('ttl',KEYS[1]); " +
" if t == -1 then " +
" redis.call('expire',KEYS[1],ARGV[1]) " +
" end; " +
" return current ";
Object result = jedis.eval(script, Collections.singletonList(redisKey), Collections.singletonList(String.valueOf(expireTime)));
return Integer.valueOf(result.toString());