我只是開始切換到memcached,目前正在使用memcached進行測試。無論如何要爲Memcached系統化linq對象嗎?
我有2對象,我創建一個對象,並把[序列化]在它(例如,讓調用這個Object1
),則使用LINQ DBML(Object2
)創建的其他對象..
我試圖memcached List<Object1>
,它工作得很好,像魅力,這裏的一切緩存和正確加載。
但是,接着我轉到Linq對象,現在我嘗試添加到memcached List<Object2>
這不起作用,它根本沒有添加到memcached中。沒有添加任何密鑰
我繼續並將序列化模式更改爲單向,再次添加,仍然沒有希望。
有沒有辦法讓這項工作?
下面是簡單的測試,我只是寫,使用MemcachedProvider從CodePlex上證明:
public ActionResult Test()
{
var returnObj = DistCache.Get<List<Post>>("testKey");
if (returnObj == null)
{
DataContext _db = new DataContext();
returnObj = _db.Posts.ToList();
DistCache.Add("testKey", returnObj, new TimeSpan(29, 0, 0, 0));
_db.Dispose();
}
return Content(returnObj.First().TITLE);
}
這是Memcached的,沒有店面被稱爲:
> NOT FOUND _x_testKey
>532 END
<528 get _x_testKey
> NOT FOUND _x_testKey
>528 END
<516 get _x_testKey
> NOT FOUND _x_testKey
>516 END
而在我的SQL事件探查器,它爲3個測試時間調用3個查詢=>證明從Memcached回調的對象爲null,然後查詢。
這個問題可以從(1)一些代碼樣本(2)什麼錯誤的更清楚的解釋中受益(3)你是如何使用.NET中的memcached的。有多個.NET包裝器,它們在這方面可能並不一樣。 – 2010-01-23 04:15:35
我添加了所有你需要的。 im使用的包裝是來自codeplex的MemcachedProvider。 object1已成功添加,但不知何故linq對象沒有。 – DucDigital 2010-01-23 04:26:36
額外信息有幫助,但我沒有看到問題。你調試了Add()調用嗎?如何使用TCP代理或Wireshark來查看MemcachedProvider是否甚至向此memcached發送任何請求? – 2010-01-23 05:07:28