c# - Redis C# 无法左推?

标签 c# list redis servicestack

我创建了一个用户可以注册的 asp.net 表单,所有信息都写入 Redis 数据库。

我还想跟踪最近的 10 个注册用户,所以我想我会执行以下操作:

-leftpush 新用户对象给最新用户 -修剪最新用户(0-9)

但是我当前的列表对象无法左推,只能添加或推送。在这两种情况下,新用户都会添加到尾部。

这是代码:

protected void Button1_Click(object sender, EventArgs e)
{
    registreer();
}

protected void registreer()
{
    using (var redisClient = new RedisClient())
    {

        var typedRedis = redisClient.As<User>();

        //Store

        var userValue = new User
        {

            Id = typedRedis.GetNextSequence(),
            Naam = TextBox1.Text,
            Achternaam = TextBox2.Text,
            Emailadres = TextBox3.Text,
            Wachtwoord = TextBox4.Text

        };

        typedRedis.SetEntry("user_" + userValue.Id, userValue);

        var list = typedRedis.Lists["newestUsers"];

        list.Push(userValue);
        list.Trim(0, 9);
    }
}

我曾尝试通过执行 trim(1,10) 来欺骗 trim 函数,它会有效地删除第一个元素,但这仅在列表已填满时才有效。

我是不是在使用列表界面的设置中做错了什么???

提前致谢。

最佳答案

您可以使用 IRedisList.Enqueue() API 向左推列表中的项目(即队列语义):

list.Enqueue(userValue);

关于c# - Redis C# 无法左推?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28326531/

相关文章:

c# - 如何在 DateTimePicker 上显示小时和分钟

Redis zrange 和 zrangebyscore

redis - Redis 中的键丢失

html - 列表定位不配合

python - 列表元素的代数运算

python - 如何用不同的变量y绘制多个对象?

redis - 如何获取 Redis 哈希长度?

c# - 在两行列表框中从文本框中添加相同的字符串?

c# - 为什么 C# 无法从非泛型静态方法的签名中推断泛型类型参数类型?

c# - 使用 TextChanged 时如何在输入输入之前清除字段?