2

我想将我的应用程序设置为使用 Redis 作为会话等的缓存以及运行我的消息队列。

我的应用程序是一个 ASP.net MVC 网站以及基于 ServiceStack 的 Json 服务提供商。配置的最佳方式是什么?

我希望能够将 IMessageQueueClient 传递到我的服务类和控制器中,以便我可以将任务添加到队列中。

我有点迷失在什么范围内做什么。我的代码如下:

//Redis Client Manager
var pooledClientManager = new PooledRedisClientManager(ConfigurationManager.AppSettings.Get("RedisServer"));
pooledClientManager.NamespacePrefix = "myApp-";
For<IRedisClientsManager>().Singleton().Use(x => pooledClientManager);

//Cache
For<ICacheClient>().Use(c => c.GetInstance<IRedisClientsManager>().GetCacheClient());

//MQ
MyApplication.MqService = new RedisMqServer(pooledClientManager);
For<IMessageQueueClient>().Singleton(). Use(
             x => MyApplication.MqService.CreateMessageQueueClient());
For<IMessageService>().Singleton().Use(x=>MyApplication.MqService);

然后我稍后调用 MyApplication.MqService.RegisterHandler(etc etc);

  1. 这行得通,但我不相信我的范围界定是正确的。
  2. 命名空间前缀不起作用,我需要这个功能。

感谢您对此的帮助!

4

1 回答 1

2

仅适用于由 RedisClients 维护的NamespacePrefix内部数据结构,不会影响用户指定的键。

于 2013-09-30T14:02:23.063 回答