Redis只允许字符串表示而不是数字值吗?

16

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

  • 有人可以确认Redis服务器只能存储任何数字值的表示吗?

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

  • 或者,我是否可以发送实际的数值类型,例如double? 如果是这样,请问如何实现?

谢谢

2个回答

17

Redis将所有内容都存储在字符串中,或者将其转换为字符串表示形式。 即使是像INCR这样的函数,也是先将其解析为整数,然后执行操作。

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

Redis将整数存储在它们的整数表示中,因此对于实际保存整数的字符串值,不需要额外存储整数的字符串表示。

至于Jedis;查看源代码,我认为它除了字符串之外不支持其他任何数据类型。


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接