3

我刚刚开始使用 ServiceStack,并在 MVC4 中创建了我的第一个服务。现在我想使用 Redis 持久化我的对象。我不知道如何让它在 Windows 上运行,或者 ServiceStack 发行版是否已经包含它。我也在考虑使用其中一个 Redis 云实现,但我想先让它在本地运行。

谢谢

4

1 回答 1

7

您需要 Windows 上的 Redis 之类的东西(此处此处,有关此的博客文章)。您可以使用存储在 github 上的 repo。一旦你有了它,你就可以在 Visual Studio 中构建 redis 并运行它。

Service Stack在这里也有一个支持页面,包括一个将Redis 作为 Windows 服务运行的项目的链接。

编辑. 而且我还找到了我大约一个月前玩过的项目和博客文章(巧合的是,它是由 stackexchange 的Jason编写的)。

最新更新好的,所以我刚评论

做的不仅仅是“下载”和“执行安装程序以获得强大的服务”,就像你对 Nuget 包所做的那样

我发现这个Redis Nuget允许您从命令行运行 Redis,由MSOpenTech发布,您可以与ServiceStack.Redis 包一起使用

编辑,这就是你使用它的方式:

  • 在 Visual Studio 中创建控制台应用程序
  • 在解决方案资源管理器的项目控制台菜单中运行“管理 NuGet 包”
  • 搜索并安装“redis-64”和“ServiceStack.Redis”(您可能希望通过从包管理器控制台运行 install-package redis-64 来执行 redis-64)
  • 通过cmd提示或双击从packages\Redis-64.\tools\redis-server.exe启动redis
    • (如果询问 windows 防火墙,只需取消以保留本地计算机上的通信)
  • 运行以下代码:

    public class Message {
        public long Id { get; set; }
        public string Payload { get; set; }
    }
    
    static void Main(string[] args) {
        List<string> messages = new List<string> {
            "Hi there",
            "Hello world",
            "Many name is",
            "Uh, my name is"
        };
    
        var client = new RedisClient("localhost");
        var msgClient = client.As<Message>();
    
        for (int i = 0; i < messages.Count; i++) {
            Message newItem = new Message { 
                Id = msgClient.GetNextSequence(), 
                Payload = messages[i] };
            msgClient.Store(newItem);
        }
    
        foreach (var item in msgClient.GetAll()) {
            Console.WriteLine("{0} {1}", item.Id, item.Payload);
            msgClient.DeleteById(item.Id);
        }
    
        Console.WriteLine("(All done, press enter to exit)");
        Console.ReadLine();
    }
    

输出:

1 Hi there 
2 Hello world 
3 Many name is 
4 Uh, my name is 
(All done, press enter to exit)
于 2013-05-12T19:47:08.313 回答