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

Mop*_*ath 4 javascript redis

我正在尝试将数字存储为 Redis 键中的值。例如,我想存储值 4,但不希望将其存储为“4”。为什么我需要这个?因为当我取回这个值时,我将对其进行一些按位运算。如果它存储为“4”(而不是4),那么实际存储在Redis中的值似乎是52(即...... 00110100而不是00000100)。

您可能想知道,为什么我不使用 Redis bitops。原因是我必须存储一个由许多位组成的数组。我不想在循环中执行 redis bitops。我只想在本地创建一个等效的数组并通过调用 set 命令上传它。

在Javascript中,我尝试做

redis.set(key, 4)
Run Code Online (Sandbox Code Playgroud)

显然它不起作用。然后我尝试了

redis.set(key, "\x04")
Run Code Online (Sandbox Code Playgroud)

这有效。但是如何通过转换为这种格式来存储字节数组呢?我在这里缺少什么?

adv*_*512 7

在内部,如果数据类型的所有值都是数字,则数据按其数字表示形式存储。否则,数据将存储为字符串。据我所知,你不能强迫 Redis 对单个数据点使用特定的表示方法,而且无论如何 - 你总是会得到字符串形式的值。您需要自己解析该值并将其转换为整数、浮点数等。