Я не знаю, действительно ли я получу ваш вопрос, но я использую этот способ для управления доступом к memcached и ключами Сначала я хотел бы сказать, что это может быть не лучшим способом, поскольку я новичок в кэшировании
public class City { String name; }
public interface CityRepository
{
City GetCityById(Int32 id);
}
public class SqlCityRepository : CityRepository
{
public City GetCityById(Int32 id)
{
//SQL CODE
return null;
}
}
public class MemcachedRepository : CityRepository
{
public CityRepository repository { get; set; }
public MemcachedRepository(CityRepository repository)
{
this.repository = repository;
}
public City GetCityById(Int32 id)
{
//IF(CHECK_IF_KEY_IS_PRESENT_AT_MEMCACHED)
// RETURN CACHED_VALUE(KEY);
//ELSE
var result = this.repository.GetCityById(id);
//ADD result TO CACHED ITEMS
return result;
}
}
И вот как я генерирую свои ключи
CLASSNAME + METHODNAME + PARAMS
Таким образом, я заканчиваю кэшированием метода resultd