我在sql server中有一个表,我将从.net MVC代码中多次查询,我想实现appfabric缓存而不是sql server查询(仅适用于此查询)。我该如何实现? 如果查询是 - 从id = @cid;
的人中选择地址cid可以是1,2或3,来自代码
答案 0 :(得分:3)
在这种情况下你真的需要AppFabric吗?
我的意思是,AppFabric缓存面向数据库是瓶颈的高容量网站,本地缓存不再是一个好选择。是的,它是缓存,但适用于大型数据和分布式场景。此外,您还必须为缓存层安装其他专用服务器。
也许基本的MemoryCache足以启动:本地缓存,无需安装,无需额外的服务器以及.net bcl中的内置支持。
这是一个基本的例子:
//Create a cache instance
ObjectCache cache = MemoryCache.Default;
//check the cache for a specific value
if (cache.Contains("mydata"))
{
//get an item from the cache
var value=cache.Get("mydata");
}
else
{
//load data
var data=fetchData();
//add an data to the cache
cache.Add("mydata", data);
}
对于缓存一小块数据和一个(或几个)Web服务器,这已经足够了。
答案 1 :(得分:0)
无论您使用哪个缓存,都可以为每个查询添加不同的缓存条目,使用基本密钥的构造和ID作为缓存键,以及从数据库返回缓存值:
public Address GetData(int cId)
{
const string AddressCacheKeyBase = "AddressCacheKey";
string key = AddressCacheKeyBase + cId;
var cachedData = cache.Get(key);
if (cachedData != null)
{
return (Address)cachedData;
}
Address address = GetAddressFromDatabase(cID);
cache.Add(key, address);
return address;
}