【发布时间】:2018-01-26 10:10:19
【问题描述】:
我正在尝试使用带有分数的Redis sorted set,按时间排序。
我目前的想法是在分数字段中使用Lua script 和pack 的时间和值,使用MessagePack (msgpack)。
- 时间值取自 Python 中的
datetime.utcnow(),如下所示:1417395600。 - 分数几乎可以有任何价值。
所以我的问题是:
- 是否可以打包这些值? Redis 的排序集似乎仅限于浮点数,除非我弄错了。
- 这会保持时间顺序吗?
如果您对如何执行此操作有任何其他想法,请告诉我。我强烈不希望使用另一个表来存储每个客户的分数...
PS:其实我并不关心时间,我只需要按时间排序分数(值),将排序后的集合用作排行榜。
【问题讨论】:
-
Sorted Set 成员的分数只能用于存储浮点(IEEE 754)值。
-
我可以输入时间,然后是
.(浮点数),然后是序列化分数,以获取字符串中的浮点数,无论我的分数类型如何? -
当然,只要注意精度
标签: lua redis leaderboard sortedset