RedisListStudy

master
ruyu 7 years ago
parent fc7c0f385f
commit f90e4b36c8

@ -58,6 +58,18 @@ namespace RedisStudyTest
Assert.Equal("first", first); Assert.Equal("first", first);
} }
[Fact]
public void ListLeftPushsTest()
{
RedisValue[] listValues = new RedisValue[]
{
"first",
"secnd",
"third"
};
var listLenth = redisListStudy.ListLeftPush(defaultRedisKey, listValues);
Assert.Equal(3, listLenth);
}
#endregion #endregion
#region ListRightPush #region ListRightPush
@ -76,6 +88,20 @@ namespace RedisStudyTest
var first = redisListStudy.ListRightPop(defaultRedisKey); var first = redisListStudy.ListRightPop(defaultRedisKey);
Assert.Equal("first", first); Assert.Equal("first", first);
} }
[Fact]
public void ListRightPushsTest()
{
RedisValue[] listValues = new RedisValue[]
{
"first",
"secnd",
"third"
};
var listLenth = redisListStudy.ListRightPush(defaultRedisKey, listValues);
Assert.Equal(3, listLenth);
}
#endregion #endregion
#region ListInsertBefore #region ListInsertBefore
@ -162,7 +188,7 @@ namespace RedisStudyTest
{ {
redisListStudy.ListLeftPush(defaultRedisKey, "first"); redisListStudy.ListLeftPush(defaultRedisKey, "first");
redisListStudy.ListSetByIndex(defaultRedisKey,0,"firstSetByIndex"); redisListStudy.ListSetByIndex(defaultRedisKey, 0, "firstSetByIndex");
var first = redisListStudy.ListLeftPop(defaultRedisKey); var first = redisListStudy.ListLeftPop(defaultRedisKey);
@ -170,6 +196,114 @@ namespace RedisStudyTest
} }
#endregion #endregion
#region ListLength
[Fact]
public void ListLengthNotKeyTest()
{
var listLenth = redisListStudy.ListLength(defaultRedisKey);
Assert.Equal(0, listLenth);
}
[Fact]
public void ListLengthTest()
{
redisListStudy.ListLeftPush(defaultRedisKey, "first");
var listLenth = redisListStudy.ListLength(defaultRedisKey);
Assert.Equal(1, listLenth);
redisListStudy.ListLeftPush(defaultRedisKey, "second");
listLenth = redisListStudy.ListLength(defaultRedisKey);
Assert.Equal(2, listLenth);
redisListStudy.ListLeftPush(defaultRedisKey, "third");
listLenth = redisListStudy.ListLength(defaultRedisKey);
Assert.Equal(3, listLenth);
}
#endregion
#region ListRange
[Fact]
public void ListRangeNotKeyTest()
{
RedisValue[] values = redisListStudy.ListRange(defaultRedisKey, 0, -1);
Assert.Empty(values);
}
[Fact]
public void ListRangeTest()
{
redisListStudy.ListLeftPush(defaultRedisKey, "first");
var values = redisListStudy.ListRange(defaultRedisKey, 0, -1);
Assert.NotEmpty(values);
Assert.Contains("first", values);
redisListStudy.ListLeftPush(defaultRedisKey, "second");
values = redisListStudy.ListRange(defaultRedisKey, 0, -1);
Assert.NotEmpty(values);
Assert.Contains("first", values);
Assert.Contains("second", values);
}
#endregion
#region ListRemove
[Fact]
public void ListRemoveNotKeyTest()
{
var removeNum = redisListStudy.ListRemove(defaultRedisKey, "first");
Assert.Equal(0, removeNum);
}
[Fact]
public void ListRemoveTest()
{
var removeNum = 0L;
redisListStudy.ListLeftPush(defaultRedisKey, new RedisValue[] { "first", "second", "third", "four" });
removeNum = redisListStudy.ListRemove(defaultRedisKey, "first", 0);
Assert.Equal(1, removeNum);
redisListStudy.ListLeftPush(defaultRedisKey, new RedisValue[] { "third", "four" });
removeNum = redisListStudy.ListRemove(defaultRedisKey, "third", 0);
Assert.Equal(2, removeNum);
redisListStudy.ListLeftPush(defaultRedisKey, new RedisValue[] { "1", "2", "1", "2", "1", "2" });
removeNum = redisListStudy.ListRemove(defaultRedisKey, "2", 0);
Assert.Equal(3, removeNum);
}
#endregion
#region ListTrim
[Fact]
public void ListTrimNotKeyTest()
{
redisListStudy.ListTrim(defaultRedisKey, 2, 5);
var listCount = redisListStudy.ListLength(defaultRedisKey);
Assert.Equal(0, listCount);
}
[Fact]
public void ListTrimTest()
{
RedisValue[] values = new RedisValue[]
{
"first",
"second",
"third",
"four"
};
redisListStudy.ListLeftPush(defaultRedisKey, values);
redisListStudy.ListTrim(defaultRedisKey,1,-1);
Assert.Equal(3, redisListStudy.ListLength(defaultRedisKey));
redisListStudy.ListTrim(defaultRedisKey, 2, -1);
Assert.Equal(1, redisListStudy.ListLength(defaultRedisKey));
}
#endregion
#region 清理 #region 清理
public void Dispose() public void Dispose()
{ {

@ -45,7 +45,7 @@ namespace RedisStuy
/// 没有找到指定元素 ,返回 -1 /// 没有找到指定元素 ,返回 -1
/// key 不存在或为空列表,返回 0 /// key 不存在或为空列表,返回 0
/// </returns> /// </returns>
public long ListLeftPushs(RedisKey key, RedisValue[] values, CommandFlags flags = CommandFlags.None) public long ListLeftPush(RedisKey key, RedisValue[] values, CommandFlags flags = CommandFlags.None)
{ {
return redisDatabase.ListLeftPush(key, values, flags); return redisDatabase.ListLeftPush(key, values, flags);
} }
@ -155,13 +155,11 @@ namespace RedisStuy
} }
/// <summary> /// <summary>
/// 移除列表中与值相等的元素 /// 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素
/// count > 0从 头到尾 的移除值相等的元素 /// count 大于 0 从 头到尾 的移除值相等的元素
/// count < 0从 尾到头 的移除值相等的元素 /// count 小于 0 从 尾到头 的移除值相等的元素
/// count 0移除所有与值相等的元素 /// count 等于 0 移除所有与值相等的元素
/// </summary> /// </summary>
/// <returns>
/// </returns>
public long ListRemove(RedisKey key, RedisValue value, long count = 0, CommandFlags flags = CommandFlags.None) public long ListRemove(RedisKey key, RedisValue value, long count = 0, CommandFlags flags = CommandFlags.None)
{ {
return redisDatabase.ListRemove(key, value, count, flags); return redisDatabase.ListRemove(key, value, count, flags);
@ -195,6 +193,8 @@ namespace RedisStuy
/// <summary> /// <summary>
/// 修剪(trim)列表 /// 修剪(trim)列表
/// 让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 /// 让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
/// 索引从0开始例如LTrim(FooBar 0 2)将修改在FooBar列表保留列表的前三个元素。
/// 索引为负数,表示从列表末尾的偏移,-1表示列表的最后一个元素类推。
/// </summary> /// </summary>
public void ListTrim(RedisKey key, long start, long stop, CommandFlags flags = CommandFlags.None) public void ListTrim(RedisKey key, long start, long stop, CommandFlags flags = CommandFlags.None)
{ {

Loading…
Cancel
Save