2013-06-21 4 views
1

Я храню пары ключ-значение в базе данных, к которым можно получить доступ через webservice. Запрос содержит страну, район, терминал, а webservice возвращает значения, сопоставленные этим значениям. База данных может содержать запись, которая отображается в стране, есть записи, которые отображаются в окружную и т.д., например:Кэширование на разных уровнях записи

Id Country District Key Value 
1 DE  D1  K1 Dummy1 
2 DE    K1 Dummy2 
3 DE  D2  K1 Dummy3 

Таким образом, если вход DE, D1, K1, то dummy1 должен быть возвращен, если вход DE, D3, тогда Dummy2 должен быть возвращен, так как у нас нет значения по конкретному округу.

Я создал хранимую процедуру, которая возвращает список с наиболее подходящими записями для ввода. Проблема с этим, что я не могу действительно использовать cahcing.

большинство записей присваиваются только стране, но есть исключения для районов, поэтому я хотел бы кэшировать списки, но ключ всегда разный, поэтому

DE, D3 DE, D4 и т.д. вернет тот же список, но кэш будет содержать его два раза для этих двух входных записей ...

Еще один вариант - читать только записи, специфичные для конкретной страны, а затем записи по конкретным районам и объединить два списка ...

Есть ли у вас какие-либо другие идеи о том, как сделать кашин возможным le Thanks

ответ

1

Из моего опыта работы с кешированием довольно часто используют входные параметры в качестве ключа кеша в системе кеширования/значения кеширования.

Таким образом, хотя DE, D3 и DE, D4 могут возвращать тот же объект, это должно быть хорошо. С системами кеширования я не буду бояться хранить один и тот же объект более одного раза. Кто знает, в будущем входы могут вернуть разные ценности в будущем.

Я бы просто использовал входы для создания ключа и кеширования выходов хранимой процедуры. Вы можете получить распределенные кэши, такие как Memcached или Redis, которые будут хранить много данных достаточно легко, если вас беспокоит пространство.

+0

Я хотел бы избежать хранения одного и того же объекта дважды или более, поскольку они cn be huger – HamoriZ