3
我想使用Lua腳本將存儲在Redis中的兩個數字相乘。但是我得到了ClassCastException。可能有人指出,這有什麼不對的程序如何在使用Lua腳本的Redis中處理數字
jedis.set("one", "1");
jedis.set("two", "2");
String script = "return {tonumber(redis.call('get',KEYS[1])) * tonumber(redis.call('get',KEYS[2]))}";
String [] keys = new String[]{"one","two"};
Object response = jedis.eval(script, 2, keys);
System.out.println(response);
拋出
Exception in thread "main" java.lang.ClassCastException: java.lang.Long cannot be cast to [B
at redis.clients.jedis.Jedis.getEvalResult(Jedis.java:2806)
at redis.clients.jedis.Jedis.eval(Jedis.java:2766)
at com.test.jedis.script.SimpleScript.main(SimpleScript.java:18)
其實我想在這兩個鍵兩個數相乘,我已經改變了腳本的最後一行(刪除#) 回報first_key * second_key,和它的工作。謝謝。在上面的程序中,redis.call()返回一個String類型而不是表格。 – user1182253