Redis:我如何INCR和插入?

时间:2012-08-30 23:14:38

标签: .net redis booksleeve

我打开CLI并打开.NET虚拟解决方案。我想创建一个用户并一次性插入一些数据。如何在CLI / REPL中写这个

redis 127.0.0.1:6379> incr userCount
(integer) 1
redis 127.0.0.1:6379> set user:1:name acid
OK
redis 127.0.0.1:6379> set user:1:pw zombie
OK

这一切都很好但我怎么一次性做到这一点?如果我可以在操作结束时获得用户标识,但我真的不需要它,而且我想一次管道3个命令,这将是很好的。我怎么做?也许我应该在交易中这样做?此外,我可能应该在插入之前检查名称是否存在,但我还没有那么远。

using BookSleeve;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RedisEx
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var conn = new RedisConnection("localhost"))
            {
                conn.Open();
                var userC = conn.Strings.Increment(1, "userCount");
                var userid = conn.Wait(userC);
                if (userid > 1)
                {
                    var sz = conn.Wait(conn.Strings.GetString(1, string.Format("user:{0}:name", userid - 1)));
                    Console.WriteLine(sz);
                }
                conn.Strings.Set(1, string.Format("user:{0}:name", userid), "acid");
                conn.Strings.Set(1, string.Format("user:{0}:pw", userid), "zombie");
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

请看这个C#示例:

它说明了将“托运人”记录添加到Redis“列表”中。只需将“用户”替换为“托运人”,即可丢失“incr”。您的“计数”只会成为列表中的#/项目:)

该示例使用ServiceStack而不是Booksleeve,但原则应该完全相同。

'希望有所帮助.. PSM