我正在尝试使用Azure的Redis StackExchange变更提供者,只是想知道最好的设置。
考虑到以下代码
private static ConnectionMultiplexer connection = ConnectionMultiplexer.Connect(...);
public string Get(string key)
{
IDatabase cache = connection.GetDatabase();
return cache.StringGet(key);
}每次调用缓存时,数据库的获取都会受到性能的影响吗?
它是否应该以其他方式加以管理?
应该只为对象的生命周期而不是静态地创建它吗?
管理IDatabase的最佳实践是什么?
发布于 2014-06-24 11:37:51
每次调用缓存时,数据库的获取都会受到性能的影响吗?
不明显的;如前所述
从
GetDatabase返回的对象是一个廉价的传递对象,不需要存储。
当然,如果你愿意的话,你可以选择储存它。碰巧,我们这样做--但这只是因为我们使用不同的数据库号(针对不同的站点),存储IDatabase和存储表示数据库号的int一样方便。
除此之外,你不需要担心太多--如果你按需分配的话,收集起来还是很便宜的。
唯一值得说的是,在您触摸redis之前,它可能值得在内存中缓存: redis调用是快速的,但是您不发出的redis调用更快。
https://stackoverflow.com/questions/24384073
复制相似问题