Nesta página, fornecemos exemplos de código do Python para usar o Memcache. Memcache é um sistema de armazenamento em cache de objetos de memória distribuída de alto desempenho que fornece acesso rápido aos dados armazenados em cache. Para saber mais sobre o Memcache, leia a Visão geral do Memcache.
O padrão do Memcache
O Memcache costuma ser usado com o seguinte padrão:
- O aplicativo recebe uma consulta do usuário ou do aplicativo.
- O aplicativo verifica se os dados que precisam atender a essa consulta estão no Memcache.
- Se os dados estiverem no Memcache, o aplicativo os usará.
- Se os dados não estiverem no Memcache, o aplicativo consultará o Datastore e armazenará os resultados no Memcache para solicitações futuras.
O pseudocódigo abaixo representa uma solicitação de Memcache típica:
ndb usa o Memcache internamente para agilizar consultas. No entanto, se quiser, você também poderá adicionar explicitamente as chamadas do Memcache para mais controle sobre as agilizações.
Como armazenar dados em cache
O exemplo a seguir demonstra várias maneiras de definir valores no Memcache usando a API Python.
Para saber mais sobre os métodos add()
, set_multi()
e set()
, consulte a
documentação do Memcache da API Python.
Como modificar guestbook.py
para usar o Memcache
O aplicativo de livro de visitas consulta o Datastore em todas as solicitações (via ndb, fazendo com que ele já ganhe algumas das velocidades do Memcache). Você pode modificar o aplicativo de livro de visitas para usar o Memcache explicitamente antes de recorrer à consulta do Datastore.
Primeiramente, importaremos o módulo do Memcache e criaremos o método que verifica o Memcache antes de executar uma consulta.
Em seguida, separaremos a consulta e a criação do HTML da página. Quando não atingirmos o cache, chamaremos esse método para consultar o Datastore e criar a string HTML que armazenaremos no Memcache.
Por fim, atualizaremos o manipulador MainPage
para chamar o método get_greetings() e exibiremos algumas estatísticas sobre o número de vezes que o cache teve ou não ocorrências.