Redis位集只能访问正值?

时间:2012-08-10 14:33:51

标签: redis

我正在尝试将负值存储到Redis位集中,但操作失败并出现以下错误:

  

位偏移不是整数或超出范围

有些人可以解释为什么不支持在Redis位集中存储负数吗?

1 个答案:

答案 0 :(得分:2)

因为没有人使用负数引用位集中的位置。位数组中的bitset,因此其索引是正整数。

如果您有一个负数(例如来自散列函数),那么您需要先将其转换为无符号整数。在大多数语言中都很简单。

在Java的特定情况下,要将signed int转换为long的底部32位中的无符号值,则需要AND与0xffffffffL。请参阅以下链接:

Best way to convert a signed integer to an unsigned long?