[1]redis脚本Lua脚本

http://redisdoc.com/script/eval.html

[1]解决redis中分布式锁,设置 过期的问题。

       String key = "name";
        String script = "local rs=redis.call('setnx',KEYS[1],ARGV[1]);if(rs<1) then return 'F';end;redis.call('expire',KEYS[1],tonumber(ARGV[2]));return 'S';";
        String sha = jimClient.scriptLoad(script);
        List<String> keys = new LinkedList<String>();
        keys.add(key);

        List<String> args = new LinkedList<String>();
        args.add("30");
        args.add("60");
        Object res = jimClient.evalsha(sha,keys,args,false);
        Boolean boolf = "F".equals(res);
        Boolean bools = "S".equals(res);
       log.warn("com.jd.pop.ware.market.center.task.CommonRest.testLua3:res={}",res);
       log.warn("com.jd.pop.ware.market.center.task.CommonRest.testLua3:boolf={}",boolf);
       log.warn("com.jd.pop.ware.market.center.task.CommonRest.testLua3:bools={}",bools);

[2] redis

String key = "name";
        jimClient.set(key,String.valueOf(5));
        jimClient.expire("name",30,TimeUnit.SECONDS);
        String script = "  local num = redis.call('get',KEYS[1]);if ( tonumber(num) >0) then local numValue =  tonumber(num)-1; redis.call('set',KEYS[1],numValue);  end";
        String sha = jimClient.scriptLoad(script);
        List<String> keys = new LinkedList<String>();
        keys.add(key);
        List<String> args = new LinkedList<String>();
        jimClient.evalsha(sha,keys,args,false);
        jimClient.expire(key,30,TimeUnit.SECONDS);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值