我目前通过以下方式使用 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 ,即它实际上只是返回一个 Typed Generic RedisClient:
public IRedisTypedClient<T> As<T>()
{
return new RedisTypedClient<T>(this);
}
同时 RedisTypedClient 的源代码准确显示它的作用,this existing answer explains roughly how it works .
关于c# - IRedisClient.As<T>() 在幕后做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41879324/