Redis 是否只允许字符串表示,而不允许数值
我在这里得到了关于我的研究的混合答案。
有人可以验证Redis服务器只能存储任何数值的表示形式吗?
例如,如果我使用在 lpush 中使用双精度类型的 Java 客户端 (Jedis),在发送到 Redis 之前,我是否需要将其转换为字符串类型的等效类型?
或者有没有办法发送一个实际的数字类型,如双精度?如果是这样,是否有任何关于如何实现此目的的示例代码?
谢谢
我在这里得到了关于我的研究的混合答案。
有人可以验证Redis服务器只能存储任何数值的表示形式吗?
例如,如果我使用在 lpush 中使用双精度类型的 Java 客户端 (Jedis),在发送到 Redis 之前,我是否需要将其转换为字符串类型的等效类型?
或者有没有办法发送一个实际的数字类型,如双精度?如果是这样,是否有任何关于如何实现此目的的示例代码?
谢谢
Redis 将所有内容存储在字符串或其字符串表示形式中。即使是像 INCR 这样的函数,也可以通过首先将其解析为 INTEGER 然后执行操作来工作
注意:这是一个字符串操作,因为 Redis 没有专用的整数类型。存储在密钥处的字符串被解释为以 10 为基数的 64 位有符号整数以执行操作。
Redis 以整数表示形式存储整数,因此对于实际保存整数的字符串值,存储整数的字符串表示形式没有开销。
和w.r.t Jedis;查看源代码,我认为它不支持字符串以外的任何其他内容
如果您使用的是JSON编解码器,则可以将双精度数字存储为字符串,但它也可以以Kryo,CBOR,MsgPack编解码器使用的二进制格式存储,这些编解码器由基于Redis的Java框架 - Redisson支持。