From 9ac0757c96e433274e9ce2a88424b1eac797e8e2 Mon Sep 17 00:00:00 2001 From: bicijinlian Date: Sun, 8 Jul 2018 16:02:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=BEt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RedisStudyTest/RedisSortedSetStudyTest.cs | 109 ++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/RedisStudyTest/RedisSortedSetStudyTest.cs b/RedisStudyTest/RedisSortedSetStudyTest.cs index 5dc3383..782af64 100644 --- a/RedisStudyTest/RedisSortedSetStudyTest.cs +++ b/RedisStudyTest/RedisSortedSetStudyTest.cs @@ -418,10 +418,119 @@ namespace RedisStudyTest Assert.Empty(mumbers); } + /// + /// 排它性参数Exclude设置 测试 + /// + [Fact] + public void SortedSetRangeByValue_Exclude_Test() + { + SortedSetEntry[] sortedSetEntries = new SortedSetEntry[] + { + new SortedSetEntry("first",0), + new SortedSetEntry("second",0), + new SortedSetEntry("third",0), + new SortedSetEntry("four",0), + new SortedSetEntry("five",0), + }; + redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries); + + //默认:Exclude.None [Start,Stop] + var members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "second", Exclude.None); + //firt five four second + Assert.Equal(4, members.Length); + + //Exclude.Start (Start,Stop] + members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "second", Exclude.Start); + //five four second + Assert.Equal(3, members.Length); + + //Exclude.Stop [Start,Stop) + members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "four", Exclude.Stop); + Assert.Equal(2, members.Length); + + //Exclude.Both (Start,Stop) + members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "first", "four", Exclude.Both); + Assert.Single(members); + } + + /// + /// 分数相同,字典排序,逐字符比较(汉字的比较等待确认) + /// 字典顺序(”0”<…<”9”<”A”<…<”Z”<”a”<…<”z”) + /// [Fact] public void SortedSetRangeByValueTest() { + SortedSetEntry[] sortedSetEntries = new SortedSetEntry[] + { + new SortedSetEntry("Andy",0), + new SortedSetEntry("and",0), + new SortedSetEntry("And",0), + new SortedSetEntry("Banana",0), + new SortedSetEntry("color",0), + new SortedSetEntry("query",0), + new SortedSetEntry("remove",0), + new SortedSetEntry("101",0), + new SortedSetEntry("304",0), + new SortedSetEntry("404",0), + new SortedSetEntry("王高峰",0), + new SortedSetEntry("刘山东",0), + }; + redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries); + + //数字排序 + var members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "0", "5"); + Assert.Contains("101", members); + Assert.Contains("304", members); + Assert.Contains("404", members); + + members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "10", "4"); + Assert.Contains("101", members); + Assert.Contains("304", members); + + members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "11", "40"); + Assert.Contains("304", members); + //字母排序 + members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "And", "color"); + //And Andy Banana and color + Assert.Contains("And", members); + Assert.Contains("Andy", members); + Assert.Contains("Banana", members); + Assert.Contains("and", members); + Assert.Contains("color", members); + + members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "A", "color"); + //And Andy Banana and color + Assert.Contains("And", members); + Assert.Contains("Andy", members); + Assert.Contains("Banana", members); + Assert.Contains("and", members); + Assert.Contains("color", members); + + members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "A", "B"); + //And Andy 不包括Banana,因为Ba排在B后 + Assert.Contains("And", members); + Assert.Contains("Andy", members); + + members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "A", "Bb"); + //And Andy Banana + Assert.Contains("And", members); + Assert.Contains("Andy", members); + Assert.Contains("Banana", members); + + //TODO:汉字排序规则不清楚 + members = redisSortedSetStudy.SortedSetRangeByValue(defaultRedisKey, "王", "赵"); + //王高峰 + Assert.Contains("王高峰", members); + } + #endregion + + #region SortedSetRangeByScore + + [Fact] + public void SortedSetRangeByScore_NotKey_Test() + { + redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey); } #endregion