Как я кэширую список/словарь в Опорах?

На веб-сайте я делаю, существует раздел, который поражает базу данных довольно трудно. Тяжелее, чем я хочу. Данные это получается, все очень статичны. Это будет редко изменяться. Таким образом, я хочу кэшировать его.

Я столкнулся с http://wiki.pylonshq.com/display/pylonsdocs/Caching+in+Templates+and+Controllers и имел хорошее чтение, использовали шаблонное использование кэширования:

return render('tmpl.html', cache_expire='never')

Это работает отлично, пока я не изменяю HTML. Единственным путем я нашел для удаления кэша, должен удалить cache_expire параметр от рендеринга () и удаляет папку кэша. Но, meh, это работает.

То, что я хочу смочь к, однако, является Списками кэша, Кортежами и Словарями. От чтения вышеупомянутой страницы Wiki кажется, что это не возможно?

Я хочу смочь сделать что-то как:

data    = [i for i in range(0, 2000000)]
mycache = cache.get_cache('cachename')

value = mycache.get(key='dataset1', list=data, type='memory', expiretime='3600')

print value

Разрешение мне сделать некоторый ЦП интенсивная работа (перечисляют поколение, в этом примере) и затем кэшировать его.

Это может быть сделано с Опорами?

1
задан dave 13 August 2010 в 04:19
поделиться

2 ответа

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

http://pylonsbook.com/en/1.1/exploring-pylons.html#app-globals-object

Также вы можете закодировать действие для обновления этой глобальной переменной через интерфейс администратора или с помощью других событий.

1
ответ дан 2 September 2019 в 22:11
поделиться

Почему бы не использовать memcached?
Посмотрите на этот вопрос о том, как использовать его с пилонами: Пилоны и Memcached

1
ответ дан 2 September 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: