我在这里的研究得到的答案很复杂。
有人可以验证Redis服务器只能存储任何数值的表示吗?
例如,如果我在lpush中使用带有double类型的Java客户端(Jedis),在发送到Redis之前是否需要将其转换为等效的字符串类型?
或者有没有办法可以发送实际的数字类型,如双?如果是这样,是否有任何关于如何实现此目的的示例代码?
谢谢
答案 0 :(得分:12)
Redis将所有内容存储在字符串或其字符串表示中。 甚至像INCR这样的函数也可以先将其解析为INTEGER然后执行操作
注意:这是一个字符串操作,因为Redis没有专用的整数类型。存储在密钥中的字符串被解释为base-10 64位有符号整数以执行操作。
Redis以整数表示形式存储整数,因此对于实际包含整数的字符串值,存储整数的字符串表示没有开销。
和杰迪斯在一起;看源代码我不认为它支持除字符串以外的任何其他内容
答案 1 :(得分:0)
如果您正在使用JSON编解码器,则可以将双数存储为字符串,但也可以使用由基于Redis的Java框架支持的Kryo,CBOR,MsgPack编解码器使用的二进制格式存储 - Redisson