我需要將數據列表存儲在緩存中。使用memcached緩存和檢索數據列表
有時我需要完整列表有時我只需要查詢結果並從列表中返回一個項目。
目前一個項目的邏輯是這樣的:
User result;
var cachedUsers = _cache.Get<List<User>>(Constants.Cache.UsersKey);
if(cachedUsers != null)
{
result = cachedUsers.FirstOrDefault(u => u.UserID == userID);
if (result != null)
return result;
}
result = GetUserFromDb(userID);
if (cachedUsers != null)
{
cachedUsers.Add(result);
_cache.Store(StoreMode.Set, Constants.Cache.UsersKey, cachedUsers);
}
return result;
我可以直接訪問一個元素從緩存中,而無需加載用戶的完整列表?我還需要邏輯來將用戶添加到緩存中,而不加載完整列表並覆蓋它。
編輯:我有選擇存儲與列表分開的項目,或從頭開始用不同的方法寫入緩存。
實施此邏輯的最佳方法是什麼?
PLZ參考http://stackoverflow.com/questions/6166769/should-i-store-an-array-or-individual-items-in-memcache – sundar