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

标签 c# redis servicestack.redis

我目前通过以下方式使用 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/

相关文章:

Redis - 正在加载数据集是 Memory Sport :

Redis故障转移场景

c# - 如何创建作为独立 exe 应用程序的 Windows 服务?

c# - 每三次迭代 C#

c# - Google Analytics BatchGet 报告 |报告名称

python - Django + CELERY_TASK_ROUTES 不适用于模块相对路径和通配符

javascript - Nodejs 卡住 MySQL 大量结果输入 REDIS HMSET

redis - Redis `dir` 路径动态变化的原因

c# - 简单的 JavaScript 问题,在 IE 中返回 NULL,但在 FireFox 中工作!

Python Redis 队列 (rq) - 如何避免为每个作业预加载 ML 模型?