redis 执行 lua脚本

数据存储

2017-06-17

338

0


技术:redis + lua + java8


运行环境:windows redis3 + lua + windows 10


demo功能:演示redis中执行lua脚本,批量获取多个key的值


源代码和lua脚本 lua.lua

http://git.oschina.net/youlixishi/demo-world


java调用方式

//测试入口
@Test
public void test() {
    CacheHelper.INSTANCE.set("a", "a");
    CacheHelper.INSTANCE.set("b", "b");
    CacheHelper.INSTANCE.set("c", "c");
    Object tmpObj = CacheHelper.INSTANCE.eval(scripts, "a,b,c");
    List tmpList = (ArrayList) tmpObj;
    tmpList.forEach(x -> {
        System.out.println(x);
    });
}
//jedis调用redis的封装
public Object eval(String scripts, String... params) {
   Jedis jedis = null;
    Object tmpResult = null;
    try {
        jedis = jedisPool.getResource();
        tmpResult = jedis.eval(scripts, params != null ? params.length : 0, params);
    } catch (Exception ex) {
        ex.printStackTrace();
    } finally {
        try {
            if (jedis != null) {
                jedis.close();
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    return tmpResult;
}

调用结果

使用redis-cli执行结果. (如果你想要调试脚本)

PS G:\Redis-x64-3.0.501> .\redis-cli.exe --eval .\lua.lua 'a,b,c'
(命令格式=redis连接格式 --eval 脚本路径 参数)

 

欢迎添加微信,互相学习↑↑↑ -_-

发表评论

全部评论:0条

白老虎

programming is not only to solve problems, ways to think