From 7fa0593598016d866b4ffbb69e6ab5b88c8d15e8 Mon Sep 17 00:00:00 2001
From: ruyu <bicijinlian@163.com>
Date: Tue, 10 Jul 2018 22:51:53 +0800
Subject: [PATCH] 20180710

---
 RedisStudyTest/RedisSortedSetStudyTest.cs | 136 ++++++++++++++++++++++
 RedisStuy/RedisSortedSetStudy.cs          |   1 +
 2 files changed, 137 insertions(+)

diff --git a/RedisStudyTest/RedisSortedSetStudyTest.cs b/RedisStudyTest/RedisSortedSetStudyTest.cs
index 3506fbb..e3ee120 100644
--- a/RedisStudyTest/RedisSortedSetStudyTest.cs
+++ b/RedisStudyTest/RedisSortedSetStudyTest.cs
@@ -1106,6 +1106,142 @@ namespace RedisStudyTest
         }
         #endregion
 
+        #region SortedSetRemoveRangeByScore
+
+        [Fact]
+        public void SortedSetRemoveRangeByScore_NotKey_Test()
+        {
+            var removeNumber = redisSortedSetStudy.SortedSetRemoveRangeByScore(defaultRedisKey,0,10000);
+            Assert.Equal(0, removeNumber);
+        }
+
+        [Fact]
+        public void SortedSetRemoveRangeByScore_NotScore_Test()
+        {
+            SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
+            {
+                new SortedSetEntry("first",1),
+                new SortedSetEntry("second",2),
+                new SortedSetEntry("third",3),
+                new SortedSetEntry("five",4),
+                new SortedSetEntry("six",5),
+                new SortedSetEntry("seven",6),
+            };
+            redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
+
+            var removeNumber = redisSortedSetStudy.SortedSetRemoveRangeByScore(defaultRedisKey, 1000, 10000);
+            Assert.Equal(0, removeNumber);
+        }
+
+        [Fact]
+        public void SortedSetRemoveRangeByScoreTest()
+        {
+            SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
+            {
+                new SortedSetEntry("first",1),
+                new SortedSetEntry("second",2),
+                new SortedSetEntry("third",3),
+                new SortedSetEntry("five",4),
+                new SortedSetEntry("six",5),
+                new SortedSetEntry("seven",6),
+            };
+            redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
+
+            var removeNumber = redisSortedSetStudy.SortedSetRemoveRangeByScore(defaultRedisKey, 1, 3);
+            Assert.Equal(3, removeNumber);
+
+            removeNumber = redisSortedSetStudy.SortedSetRemoveRangeByScore(defaultRedisKey, 4, 4);
+            Assert.Equal(1, removeNumber);
+
+            removeNumber = redisSortedSetStudy.SortedSetRemoveRangeByScore(defaultRedisKey, 5, 6);
+            Assert.Equal(2, removeNumber);
+        }
+        #endregion
+
+        #region SortedSetRemoveRangeByScore
+
+        [Fact]
+        public void SortedSetRemoveRangeByValue_NotKey_Test()
+        {
+            var removeNumber = redisSortedSetStudy.SortedSetRemoveRangeByValue(defaultRedisKey, "0", "zz");
+            Assert.Equal(0, removeNumber);
+        }
+
+        [Fact]
+        public void SortedSetRemoveRangeByValue_NotValue_Test()
+        {
+            SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
+            {
+                new SortedSetEntry("first",1),
+                new SortedSetEntry("second",2),
+                new SortedSetEntry("third",3),
+                new SortedSetEntry("five",4),
+                new SortedSetEntry("six",5),
+                new SortedSetEntry("seven",6),
+            };
+            redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
+
+            var removeNumber = redisSortedSetStudy.SortedSetRemoveRangeByValue(defaultRedisKey, "w", "z");
+            Assert.Equal(0, removeNumber);
+        }
+
+        [Fact]
+        public void SortedSetRemoveRangeByValueTest()
+        {
+            SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
+            {
+                new SortedSetEntry("first",0),
+                new SortedSetEntry("second",0),
+                new SortedSetEntry("third",0),
+                new SortedSetEntry("five",0),
+                new SortedSetEntry("six",0),
+                new SortedSetEntry("seven",0),
+            };
+            redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
+
+            var removeNumber = redisSortedSetStudy.SortedSetRemoveRangeByValue(defaultRedisKey, "first", "second");
+            Assert.Equal(3, removeNumber);
+
+            removeNumber = redisSortedSetStudy.SortedSetRemoveRangeByValue(defaultRedisKey, "seven", "seven");
+            Assert.Equal(1, removeNumber);
+
+            removeNumber = redisSortedSetStudy.SortedSetRemoveRangeByValue(defaultRedisKey, "six", "third");
+            Assert.Equal(2, removeNumber);
+        }
+        #endregion
+
+        #region SortedSetCombineAndStore todo:待做任务
+        [Fact]
+        public void SortedSetCombineAndStoreTest()
+        {
+            //redisSortedSetStudy.SortedSetCombineAndStore();
+        }
+        #endregion
+
+        #region SortedSetScan
+
+        [Fact]
+        public void SortedSetScanTest()
+        {
+            SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
+           {
+                new SortedSetEntry("first",1),
+                new SortedSetEntry("second",2),
+                new SortedSetEntry("third",3),
+                new SortedSetEntry("five",4),
+                new SortedSetEntry("six",5),
+                new SortedSetEntry("seven",6),
+           };
+            redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
+
+            var members = redisSortedSetStudy.SortedSetScan(defaultRedisKey,"*", 100,CommandFlags.None);
+            Assert.Equal(6, members.Count());
+
+            members = redisSortedSetStudy.SortedSetScan(defaultRedisKey);
+            Assert.Equal(6, members.Count());
+        }
+        #endregion
+
         #region 清理
         public void Dispose()
         {
diff --git a/RedisStuy/RedisSortedSetStudy.cs b/RedisStuy/RedisSortedSetStudy.cs
index 72c66c4..6e01295 100644
--- a/RedisStuy/RedisSortedSetStudy.cs
+++ b/RedisStuy/RedisSortedSetStudy.cs
@@ -140,6 +140,7 @@ namespace RedisStuy
 
         /// <summary>
         /// 通过分数返回有序集合指定区间内的成员
+        /// Score
         /// </summary>
         public RedisValue[] SortedSetRangeByScore(RedisKey key, double start = double.NegativeInfinity, double stop = double.PositiveInfinity, Exclude exclude = Exclude.None, Order order = Order.Ascending, long skip = 0, long take = -1, CommandFlags flags = CommandFlags.None)
         {