我正在使用时间戳作为分数。为了防止重复,我将一个唯一的对象id附加到分数后面。目前,这个id是一个6位数字(现在最高的id是221849),但预计会增加到100万以上。所以,分数将是类似于1407971846221849(时间戳:1407971846,id:221849),最终将达到14079718461000001(时间戳:1407971846,id:1000001)。
我的担忧是无法存储分数,因为它们已经达到了最大允许值。
我已经阅读了文档,但有点困惑。我知道基本的数学知识。但请耐心等待,我想弄清楚这个问题。
Redis排序集使用双精度64位浮点数表示分数。在我们支持的所有体系结构中,它被表示为IEEE 754浮点数,能够精确表示介于-(2^53)和+(2^53)之间的整数。更实际地说,-9007199254740992到9007199254740992之间的所有整数都可以完全表示。较大的整数或分数以指数形式内部表示,因此您设置为分数的十进制数或非常大的整数可能仅是近似值。
我的担忧是无法存储分数,因为它们已经达到了最大允许值。
我已经阅读了文档,但有点困惑。我知道基本的数学知识。但请耐心等待,我想弄清楚这个问题。
Redis排序集使用双精度64位浮点数表示分数。在我们支持的所有体系结构中,它被表示为IEEE 754浮点数,能够精确表示介于-(2^53)和+(2^53)之间的整数。更实际地说,-9007199254740992到9007199254740992之间的所有整数都可以完全表示。较大的整数或分数以指数形式内部表示,因此您设置为分数的十进制数或非常大的整数可能仅是近似值。
还有一件事让我困扰。增加id是否会破坏时间顺序?
我将感谢任何见解、建议、不同的观点或者直接告诉我我所做的是无意义的。
感谢您的任何帮助。
ZREM
: http://redis.io/commands/zrem - Itamar Haber