1

我正在尝试实现事务性 StoreRelatedEntities。所以我需要从 ITypedRedisClient 访问 RedisClient 或者这个:

using (var trans1 = redis.As<X>().CreateTransaction())
using (var trans2=  redis.As<Y>().CreateTransaction())
{
   .....
   trans1.Join(trans2); // :) Fantasy
   trans2.Commit(); 
}                

这是正确的方法吗?或者我必须

using (var trans1=redis.As<X>().CreateTransaction())
{
  trans.QueueCommand(p => ((RedisClient)((RedisTypedClient<T>)p).NativeClient).AddRangeToList(.....);
}

还是我必须?

using (var trans=redis.CreateTransaction())
{
   trans.QueueCommand(p=>p.As<X>()....); // Casting to Typed RedisClient in Command
   trans.QueueCommand(p=>p.As<Y>()....);
}
4

1 回答 1

1

这看起来是最简单的,所以这是我的选择:

using (var trans=redis.CreateTransaction())
{
   trans.QueueCommand(p=>p.As<X>()....); // Casting to Typed RedisClient in Command
   trans.QueueCommand(p=>p.As<Y>()....);
}

但是没有对错之分,只要做你更舒服的事情。每个客户端都继承或包含 RedisNativeClient 的实例,该实例封装了与 Redis 服务器的 tcp 套接字连接。不同类之间的关系如下:

于 2012-06-04T05:13:49.140 回答