Redis lua脚本性能测试
- 常规方式
for (int i = 0; i < 1000; ++i) {
inst.set("redis_lua_test_n_" + i, "a");
}
时间:212ms
- lua脚本执行
List<String> keys = new ArrayList<>();
List<String> vals = new ArrayList<>();
for (int i = 0; i < 1000; ++i) {
keys.add("redis_lua_test_lua_"+i);
vals.add("redis_lua_test_lua_"+i);
}
String lua = "local tab={} for i=1,#KEYS do tab[i] = redis.call('set',KEYS[i],ARGV[i]) end return tab";
String scriptLoad = jedis.scriptLoad(lua);
jedis.evalsha(scriptLoad, keys, vals);
时间:14ms
测试源码:RedisLuaScriptTest