IRedisClient.As<T>() 在幕后做了什么?

What does IRedisClient.As<T>() do behind the scenes?

我目前通过以下方式使用 c# ServiceStack RedisClient

   using (var cache = new BasicRedisClientManager(readWriteHosts).ClientFactory.GetClient())
   {
        var r = cache.As<Foo>();
        var myItem = r.GetById(123);
   }

我想知道幕后发生了什么? Redis 如何知道哪种类型与哪个键相关?它不能检查每种类型的匹配项,那样太慢了。当我设置对象时,我自己将其序列化并将其添加为字符串 - 所以它也无法从那里知道。

它工作得非常好,我什至尝试更改类型的属性和命名空间以查看发生了什么,它只是处理它。有谁知道如何

如有疑问,您可以 read the source code,即它实际上只是返回类型化的通用 RedisClient:

public IRedisTypedClient<T> As<T>()
{
    return new RedisTypedClient<T>(this);
}

RedisTypedClient shows exactly what it does, this existing answer explains roughly how it works.

的源代码