【问题标题】:Is there any way to get time from redis server with JedisCluster API?有没有办法使用 JedisCluster API 从 redis 服务器获取时间?
【发布时间】:2017-08-18 08:49:46
【问题描述】:

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

【问题讨论】:

    标签: lua redis jedis


    【解决方案1】:

    ATM Jedis 无法向 Redis 发送原始命令,并且 TIME 命令目前不属于其中。如果你真的需要这个,你需要分叉和实施,然后发送拉取请求。

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

    【讨论】:

      【解决方案2】:

      即使 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);
      

      返回列表“eval”正是时间命令返回的内容,如redis网站所述:

      返回值

      数组回复,具体来说:

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

      unix 时间,以秒为单位。

      微秒。

      我用的是jediscluster,所有的eval方法都需要“key”参数,所以我只是输入了一个随机的key“1”,因为这个key其实是没用的。您可以选择合适的客户端和方法,但代码会相似。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-28
        • 2021-06-04
        • 2013-08-30
        • 1970-01-01
        • 2013-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多