排序的设置为每some suggestions正确的方法,我使用Redis的ZADD
通过BookSleeve的SortedSets.Add()
保存按时间顺序数据如下:检索从Redis的使用BookSleeve
TimeSpan span = DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0));
_connection.SortedSets.Add(_db, thisChannel, message, span.TotalSeconds, false);
使用ServiceStack的AdminUI,我可以看到Redis中隐藏的值。
这些值存储为UTC,我现在希望能够返回一个范围的值。
很简单,因为我最近保存的值,我想:
var subset = _connection.Wait(_connection.SortedSets.Range(_db, thisChannel, span.TotalSeconds - 10000, span.TotalSeconds, offset: 0, count: 50));
在VS,集合中包含的双重价值,关键是Byte []类型的。我认为这是保存的数据的字节数组 - 即使我将它保存为字符串?
我查看了一些代码here,想知道是否有大量的文档和一些关于如何使用此功能的示例?
Booksleeve基本上充当垫片直接在[底层ZRANGE命令的顶部](http://redis.io/commands/zrange);顺便说一句,最直接的测试链接是[这里](https://code.google.com/p/booksleeve/source/browse/Tests/SortedSets.cs)。返回的byte []'只是UTF-8编码 - 还有'RangeString'可以为你做翻译。我必须“现在”去吃东西,但我稍后可以回来添加一个更完整的例子。你能澄清一下:目前有什么问题?你没有得到预期的行吗?或者只是切换到'RangeString'的情况?我该怎么帮忙? – 2013-02-21 01:57:20
阅读ZRANGE文档后,我看到开始/停止值从给定范围的开始到结束为零。所以,当我使用RangeString()时,我使用0,99999(因为没有超出范围的异常抛出),我期望的全部项目。然而,我始终得到“方法或操作没有实现”的错误“。此外,不使用分数不会帮助我在这种情况下(因为得分是时间戳),我用这个范围得到。 – ElHaix 2013-02-21 14:41:46
这很有趣,也没有办法,我可以推断,从问题!是否有一个堆栈跟踪?我要旋转起来的快速测试,看看我是否能瑞普与您的代码 – 2013-02-21 15:05:18