redis实现连续自增key

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());
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。