JAVA中应用Redis与Lua脚本

首先在Redis中有myhash这个变量

192.168.45.132:6379> hgetall myhash
(1) "name"
(2) "aaa"
(3) "age"
(4) "20"
(5) "phone"
(6) "132231334"

创建TestSingleRedisLua测试类

public class TestSingleRedisLua {

	private static Jedis jedis; // 单实例
	private static final String SCRIPT = "local t1 = redis.call(hgetall,KEYS[1]);"+"
"+
	                              "return t1";
			
	@BeforeClass
	public static void setUpBeforeClass() throws Exception{
		//单个节点
		jedis = new Jedis("192.168.45.132",6379);
	}
	
	@AfterClass
	public static void tearDownAfterClass() throws Exception{
		jedis.disconnect();
	}
	

	@Test
	public void testLua() {
		// 加载脚本获得shakey
		String shakey = jedis.scriptLoad(SCRIPT);
		System.out.println("shakey="+shakey);
		// key参数
		List<String> keys = new ArrayList<String>();
		keys.add("myhash");
		// value参数
		List<String> args = new ArrayList<String>();
		
		List<String> res = (List<String>) jedis.evalsha(shakey,keys,args);
		System.out.println("res="+res);
	}
	
}

执行测试方法,控制台输出结果

经验分享 程序员 微信小程序 职场和发展