我使用时间戳作为分数。我想通过将唯一的对象 ID 附加到分数来防止重复。目前,这个id是一个6位数字(目前最高的id是221849),但预计会增加到百万以上。因此,分数将类似于 1407971846221849 (时间戳:1407971846 id:221849),最终将达到 14079718461000001 (时间戳:1407971846 id:1000001)。
我担心的是无法存储分数,因为它们已达到允许的最大值。
我已阅读文档,但我有点困惑。我知道,基础数学。但请耐心听我说,我想把这件事做好。
Redis 排序集使用双 64 位浮点数来表示分数。在我们支持的所有架构中,这都表示为 IEEE 754 浮点数,能够精确表示 -(2^53) 和 +(2^53) 之间的整数。更实际地说,-9007199254740992 和 9007199254740992 之间的所有整数都可以完美表示。较大的整数或分数在内部以指数形式表示,因此您可能只能得到设置为分数的十进制数或非常大的整数的近似值。
现在还有一件事困扰着我。id 的增加会破坏时间顺序吗?
如果我想做的事情毫无意义,我将不胜感激任何见解、建议、不同的观点或直截了当。
谢谢你的帮助。