Вы можете использовать любой ORM для извлечения данных из базы данных. Как только данные извлекаются из базы данных, вы можете установить зависимость SQL от элемента, прежде чем он будет вставлен в кэш.
NCache предоставляет собственную реализацию зависимости SQL, независимую от инфраструктуры, используемой для извлечения содержимого базы данных (EF, NHibernate, ADO.NET и т. Д.). В этой функции NCache регистрирует команды SQL (запросы SELECT и хранимые процедуры SELECT) на сервере базы данных. Если какое-либо событие UPDATE или DELETE изменяет результирующий набор, который можно получить с помощью этих зарегистрированных команд SQL, SQL-сервер отправит уведомление NCache, в ответ удалив соответствующие данные кэша.
Следовательно, внутри блока using контекста db вы можете добавить содержимое, извлеченное из базы данных, в кэш с установленной зависимостью SQL NCache.
Чтобы обеспечить 100% обновление данных кеша в ответ на события UPDATE вместо полного удаления данных кеша, затронутых этим, это включает в себя интеграцию с функцией автоматической перезагрузки, которая использует возможности NCache для сквозного чтения в форме поставщики источников поддержки. В этом случае вы можете установить флаг повторной синхронизации для элемента кэша, чтобы указать, что NCache должен извлекать свежие данные в случае, если элемент должен быть удален зависимостью SQL. Для этого провайдер для сквозного чтения продолжит извлекать свежие данные из базу данных и заменить устаревшие данные кеша. Поставщики read-thru вместе с поставщиками write-thru составляют поставщиков источников поддержки NCache, которые позволяют NCache выполнять команды чтения и записи в базу данных от имени клиентов.
Дополнительную информацию о зависимости SQL можно найти по следующей ссылке:
http://www.alachisoft.com/resources/docs/ncache/prog-guide/sql-dependency.html.
Информацию о поставщиках источников поддержки NCache можно найти по следующей ссылке:
http://www.alachisoft.com/resources/docs/ncache/prog -руководство / данных источника provider.html
Набор является хорошим способом иметь дело с этим:
>>> a = ['google.com', 'livejournal.com', 'livejournal.com', 'google.com', 'stackoverflow.com']
>>> b = set(a)
>>> b
set(['livejournal.com', 'google.com', 'stackoverflow.com'])
>>>
Одно предложение w/r/t первый ответ, то, что наборы и dicts лучше в получении уникальных результатов быстро, членство в списках является O (n) по сравнению с O (1) для других типов, поэтому если Вы хотите хранить дополнительные данные или делаете что-то, любят, создают упомянутый unique_results
список, может быть лучше сделать что-то как:
unique_results = {}
>>> for item in a:
unique_results[item] = ''
>>> unique_results
{'livejournal.com': '', 'google.com': '', 'stackoverflow.com': ''}
Одна опция состояла бы в том, чтобы поместить результаты в объект набора:
http://www.python.org/doc/2.6/library/sets.html#sets.Set
Получающийся набор будет состоять только из отличных значений, переданных в него.
Сбой этого, создание нового списка, содержащего только уникальные объекты, работали бы. Что-то как:
unique_results = []
for obj in user:
if obj not in unique_results:
unique_results.append(obj)
Это for
цикл может быть сжат в понимание списка также.