有没有办法通过JedisCluster API从redis服务器获取时间?

时间:2017-03-25 11:57:56

标签: lua redis jedis

我在我的应用程序中使用了Jedis(2.9.0)API,我发现API不支持redis的TIME命令,如何从Redis服务器获取系统时间?或使用lua脚本来做到这一点?谢谢你。

2 个答案:

答案 0 :(得分:1)

ATM Jedis无法向Redis发送原始命令,而TIME命令目前不属于它。如果你真的需要这个,你需要fork并实现,然后发送pull请求。

Jedis的目标是打字安全而简单。添加新命令相对容易。

答案 1 :(得分:0)

即使jedis尚未支持,您也可以使用lua脚本轻松实现。

像这样

        String script = "local ntime = redis.call('TIME')\n" +
                "return ntime";

        ArrayList<Long> eval = (ArrayList<Long>)jedisCluster.eval(script, "1");
        System.out.println(eval);

返回列表&#34; eval&#34;正如redis网站所描述的那样,返回的是时间命令:

  

返回值

     

数组回复,具体来说:

     

包含两个元素的多批量回复:

     

以秒为单位的unix时间。

     

微秒。

我使用jediscluster,所有需要的eval方法&#34; key&#34; param,所以我只输入一个随机密钥&#34; 1&#34;,因为这个密钥实际上是无用的。您可以选择合适的客户端和方法,但代码类似。