【发布时间】:2015-10-12 06:14:51
【问题描述】:
当 Redis Sorted Set 具有 +Infinity 分数的项目时,尝试获取其分数返回 double.NaN 而不是 double.PositiveInfinity。
SortedSetRangeByScoreWithScores 和 SortedSetRangeByRankWithScores 方法都会发生这种情况。
注意最后一个断言失败:
var cnn = ConnectionMultiplexer.Connect("...");
var db = cnn.GetDatabase();
db.SortedSetAdd("key", "first", double.NegativeInfinity);
db.SortedSetAdd("key", "last", double.PositiveInfinity);
var result = db.SortedSetRangeByScoreWithScores("key", double.NegativeInfinity, double.PositiveInfinity);
Assert.AreEqual(double.NegativeInfinity, result[0].Score);
Assert.AreEqual(double.PositiveInfinity, result[1].Score); // <-- This assert fails
这是通过 redis-cli 得到的结果:
参考 StackExchange.Redis 问题#287
【问题讨论】: