Sorted Set

master
bicijinlian 7 years ago
parent cb74222185
commit fa9703474a

@ -329,6 +329,85 @@ namespace RedisStudyTest
#endregion
#region SortedSetRank
[Fact]
public void SortedSetRank_NotKey_Test()
{
var index = redisSortedSetStudy.SortedSetRank(defaultRedisKey, "first");
Assert.Null(index);
}
[Fact]
public void SortedSetRankTest()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
{
new SortedSetEntry("first",1),
new SortedSetEntry("second",2),
new SortedSetEntry("third",3),
new SortedSetEntry("four",4),
new SortedSetEntry("five",5),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
long? memberRank = null;
memberRank = redisSortedSetStudy.SortedSetRank(defaultRedisKey, "first");
Assert.Equal(0, memberRank);
memberRank = redisSortedSetStudy.SortedSetRank(defaultRedisKey, "second");
Assert.Equal(1, memberRank);
memberRank = redisSortedSetStudy.SortedSetRank(defaultRedisKey, "third");
Assert.Equal(2, memberRank);
memberRank = redisSortedSetStudy.SortedSetRank(defaultRedisKey, "four");
Assert.Equal(3, memberRank);
memberRank = redisSortedSetStudy.SortedSetRank(defaultRedisKey, "five");
Assert.Equal(4, memberRank);
}
#endregion
#region SortedSetRangeByRank
[Fact]
public void SortedSetRangeByRank_NotKey_Test()
{
var members = redisSortedSetStudy.SortedSetRangeByRank(defaultRedisKey);
Assert.Empty(members);
}
[Fact]
public void SortedSetRangeByRankTest()
{
SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
{
new SortedSetEntry("first",1),
new SortedSetEntry("second",2),
new SortedSetEntry("third",3),
new SortedSetEntry("four",4),
new SortedSetEntry("five",5),
};
redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
var members = redisSortedSetStudy.SortedSetRangeByRank(defaultRedisKey);
Assert.NotEmpty(members);
for (var i=0; i< sortedSetEntries.Length; i++)
{
Assert.Equal(sortedSetEntries[0].Element, members[0]);
}
members = redisSortedSetStudy.SortedSetRangeByRank(defaultRedisKey, 1, -1, Order.Descending, CommandFlags.None);
//four third second first
Assert.Equal(sortedSetEntries[3].Element, members[0]);
Assert.Equal(sortedSetEntries[2].Element, members[1]);
Assert.Equal(sortedSetEntries[1].Element, members[2]);
Assert.Equal(sortedSetEntries[0].Element, members[3]);
}
#endregion
#region 清理
public void Dispose()
{

@ -121,9 +121,9 @@ namespace RedisStuy
/// <summary>
/// 通过分数返回有序集合指定区间内的成员
/// 有序集成员按分数值递增(从小到大)次序排列
/// 具有相同分数值的成员按字典序来排列(该属性是有序集提供的,不需要额外的计算)
/// 默认情况下,区间的取值使用闭区间(小于等于或大于等于),你也可以通过给参数前增加(符号来使用可选的开区间 (小于或大于)
/// 默认从最低到最高得分排序,字典顺序用于等分元素
/// 启动和停止都是基于零的索引其中0是第一个元素1是下一个元素等等
/// 负数时 -1是最后一个元素-2是倒数第二元素类推
/// </summary>
public RedisValue[] SortedSetRangeByRank(RedisKey key, long start = 0, long stop = -1, Order order = Order.Ascending, CommandFlags flags = CommandFlags.None)
{

Loading…
Cancel
Save