【问题标题】:Does Redis only allow string representation but not numeric valueRedis是否只允许字符串表示但不允许数值
【发布时间】:2015-11-30 02:05:14
【问题描述】:

我在这里的研究得到了不同的答案。

  • 有人可以验证 Redis 服务器是否只能存储任何数值的表示形式?

  • 例如,如果我在 lpush 中使用具有 double 类型的 Java 客户端 (Jedis),是否需要在发送到 Redis 之前将其转换为等效的字符串类型?

  • 或者有没有办法可以发送一个实际的数字类型,比如双精度数?如果是这样,是否有任何示例代码说明如何完成此操作?

谢谢

【问题讨论】:

    标签: java redis jedis


    【解决方案1】:

    Redis 将所有内容存储在字符串或其字符串表示形式中。 甚至像 INCR 这样的函数也是通过首先将其解析为 INTEGER 然后执行操作来工作的

    注意:这是一个字符串操作,因为 Redis 没有专用的整数类型。存储在密钥中的字符串被解释为以 10 为底的 64 位有符号整数以执行操作。

    Redis 以整数表示形式存储整数,因此对于实际保存整数的字符串值,存储整数的字符串表示形式没有开销。

    还有 w.r.t Jedis;查看源代码,我认为它不支持字符串以外的任何其他内容

    【讨论】:

      【解决方案2】:

      如果您使用 JSON 编解码器,双数可以存储为字符串,但也可以以 Kryo、CBOR、MsgPack 编解码器使用的二进制格式存储,这些编解码器受基于 Redis 的 Java 框架支持 - Redisson

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多