Redis是否仅允许字符串表示,但不允许数字值

时间:2015-09-04 02:25:16

标签: java redis jedis

我在这里的研究得到的答案很复杂。

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

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

  • 或者有没有办法可以发送实际的数字类型,如双?如果是这样,是否有任何关于如何实现此目的的示例代码?

谢谢

2 个答案:

答案 0 :(得分:12)

Redis将所有内容存储在字符串或其字符串表示中。 甚至像INCR这样的函数也可以先将其解析为INTEGER然后执行操作

  

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

     

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

和杰迪斯在一起;看源代码我不认为它支持除字符串以外的任何其他内容

答案 1 :(得分:0)

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