Redis如何存储数字而不是字符串

4
我正在尝试将数字作为Redis键中的值存储。例如,我想存储值4,并且不希望其存储为“4”。为什么我需要这样做?因为当我检索此值时,我将对其进行一些位运算。如果它存储为“4”(而不是4),则Redis中实际存储的值似乎是52(即... 00110100而不是00000100)。
你可能会想,为什么我不使用Redis bitops。原因是我必须存储许多位的数组。我不想在循环中执行redis bitops。我只想在本地创建一个等效数组,并通过调用set命令上传它。
在Javascript中,我尝试了:
redis.set(key, 4)

显然它没有起作用。然后我尝试了。
redis.set(key, "\x04")

这可以工作。但是如何通过转换为这种格式来存储字节数组?我漏掉了什么?
1个回答

7

在内部,如果数据类型的所有值都是数字,则根据其数值表示存储数据。否则,数据将以字符串形式存储。据我所知,您无法强制Redis使用特定的表示方法来处理单个数据点,并且无论如何 - 您始终会得到一个字符串值。您需要自己解析该值并将其转换为整数、浮点数等。


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