当前位置:   article > 正文

redis与lua脚本的结合使用_jedis使用lua

jedis使用lua

上篇介绍了lua的脚本的基本数据类型,以及函数定义,字符串常规方法,表,线程等等,


今天为大家介绍redis如何结合lua脚本使用


我今天,先做简单的介绍,就不带大家安装了,直接在项目中操作.


首先看来看一个加单的Hell Word !!!


  1. Jedis jedis=new Jedis("127.0.0.1",6379);
  2. Object eval = jedis.eval("return redis.call('set','first','hell word !!!')");
  3. Object eval1 = jedis.eval("return redis.call('get','first')");
  4. System.out.println(eval.toString());
  5. System.out.println(eval1.toString());

运行结果为:

  1. OK
  2. hell word !!!

删除redis中的值

  1. Jedis jedis=new Jedis("127.0.0.1",6379);
  2. Object eval = jedis.eval("return redis.call('del','first')");
  3. System.out.print(eval.toString());

运行结果为:

1

但是官方给的解释说这么写实不规范的写法,官方建议这样:

  1. Jedis jedis=new Jedis("127.0.0.1",6379);
  2. Object eval = jedis.eval("return redis.call('del',KEYS[1])",1,"first");
  3. System.out.print(eval.toString());

也就是说 通过传惨的形式.所以大家要注意语法的书写


KEYS[1] 只的就是key ,1指的是key有几个,first指的是参数


获取redis中的hash值

  1. Jedis jedis=new Jedis("127.0.0.1",6379);
  2. String eva=
  3. "local myresult = redis.call('hkeys',KEYS[1]); " +
  4. "local result={}; "+
  5. "for i,v in ipairs(myresult) do " +
  6. " local hva = redis.call('hget',KEYS[1],v);"+
  7. " table.insert(result,1,hva);"+
  8. " end " +
  9. " return result ;";
  10. Object eval1 = jedis.eval(eva,1,"map");
  11. System.out.println(eval1.toString());

运行结果:

[刚, gang]


这是简单的几个连接redis的脚本的书写,大家也可以在linux上安装lua运行库,然后通过命令在运行lua脚本.


但是个人觉得,如果在项目中使用,还是建议直接书写lua脚本语句,而不是直接写lua脚本文件去加载文件


欢迎转载,请注明出处!!!




声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号