{"id":1523,"date":"2014-12-16T19:21:01","date_gmt":"2014-12-16T19:21:01","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1523"},"modified":"2025-06-13T20:20:42","modified_gmt":"2025-06-14T03:20:42","slug":"caching-queries-couchbase-high-performance","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/caching-queries-couchbase-high-performance\/","title":{"rendered":"Consultas em cache no Couchbase para alto desempenho"},"content":{"rendered":"<p id=\"docs-internal-guid-234a5d03-1869-9e8a-46e3-d3772b1d3e20\" dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">A partir da vers\u00e3o 2.0, o servidor Couchbase oferece uma maneira eficiente de criar \u00edndices para documentos JSON por meio do conceito de exibi\u00e7\u00f5es.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Usando exibi\u00e7\u00f5es, \u00e9 poss\u00edvel definir \u00edndices prim\u00e1rios, \u00edndices compostos e agrega\u00e7\u00f5es que permitem:<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">. consultar documentos em diferentes propriedades JSON<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">. criar estat\u00edsticas e agregados<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">As visualiza\u00e7\u00f5es geram \u00edndices materializados, o que proporciona uma maneira r\u00e1pida e eficiente de executar consultas predefinidas.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">No entanto, no Couchbase 2.x, os \u00edndices s\u00e3o armazenados no disco e lidos do disco para cada consulta, o que tem algumas implica\u00e7\u00f5es de desempenho.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">No futuro, o Couchbase permitir\u00e1 o armazenamento em cache de \u00edndices no cache gerenciado de forma semelhante ao que \u00e9 feito para documentos JSON para acelerar as consultas.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Enquanto isso, este blog fornece um exemplo simples de como os resultados da consulta podem ser armazenados em cache no Couchbase para serem recuperados do cache em vez de serem servidos a partir do \u00edndice no disco.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Isso \u00e9 \u00fatil para cen\u00e1rios em que uma consulta a um \u00edndice n\u00e3o precisa ser atualizada imediatamente (minutos ou mais s\u00e3o suficientes), mas \u00e9 lida com frequ\u00eancia (v\u00e1rias vezes por segundo). Nesse caso, os resultados da consulta ser\u00e3o calculados apenas de vez em quando com base nas necessidades do aplicativo e lidos do cache gerenciado no restante do tempo.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Um bom exemplo de caso de uso para isso \u00e9 uma tabela de classifica\u00e7\u00e3o de jogos. Uma exibi\u00e7\u00e3o pode ser usada para criar um \u00edndice para as pontua\u00e7\u00f5es mais altas de um determinado jogo e essa exibi\u00e7\u00e3o pode ser consultada a cada poucos minutos (digamos, 5 minutos) e armazenada em cache no Couchbase Server. Todas as solicita\u00e7\u00f5es para a exibi\u00e7\u00e3o ser\u00e3o direcionadas ao valor armazenado em cache e, portanto, levar\u00e3o apenas alguns ms e n\u00e3o precisar\u00e3o de nenhuma consulta de \u00edndice no servidor.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Observe que o m\u00e9todo acima \u00e9 independente da atualiza\u00e7\u00e3o autom\u00e1tica dos \u00edndices. Por padr\u00e3o, cada \u00edndice no Couchbase \u00e9 atualizado a cada 5 segundos ou 5000 atualiza\u00e7\u00f5es, ambos ajust\u00e1veis por meio da API REST. Saiba mais sobre isso em: <\/span><a style=\"text-decoration: none\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/docs\/couchbase-manual-2.1.0\/couchbase-views-operation-autoupdate.html\/\"><span style=\"font-size: 16px;font-family: Arial;color: #0000ff;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline\">https:\/\/www.couchbase.com\/docs\/couchbase-manual-2.1.0\/couchbase-views-operation-autoupdate.html<\/span><\/a><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Isso significa que, embora o \u00edndice possa ser mantido atualizado, as consultas espec\u00edficas, que n\u00e3o precisam ser atualizadas, podem ser armazenadas em cache para aumentar a taxa de transfer\u00eancia e diminuir a lat\u00eancia. A \u00fanica ressalva \u00e9 que o tamanho m\u00e1ximo dos valores no Couchbase \u00e9 de 20 MB, portanto, as consultas em cache n\u00e3o devem ser usadas para conjuntos de resultados muito grandes, embora seja sempre poss\u00edvel dividir os resultados em v\u00e1rios valores em cache para conjuntos maiores.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Isso \u00e9 bastante simples de implementar. Vamos dar uma olhada em como podemos fazer isso em Java.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Usarei o banco de dados bee-sample, que vem com o servidor Couchbase. Se voc\u00ea ainda n\u00e3o o instalou, v\u00e1 para Settings (Configura\u00e7\u00f5es) e selecione beer-sample (amostra de cerveja) e clique em Create (Criar):<\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/_oXSD-xwVf19lCK_ay7AV4-7QA5xp8J0_gvleCdBxAnr7p83PWMWfTRPdhbaii6U8UxVaZAYtkb9g7wthcL0cKhRveyh7E3MzPqppp4dhqO8IBB0SyUzNgaZxbfft46jqw\" width=\"625px;\" height=\"252px;\" \/><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Ele vem com uma visualiza\u00e7\u00e3o brewery_beer, que usarei para criar o exemplo de armazenamento em cache:<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/3OHfnKG4zTrvhMOGOOnF3l-1a4SRO1nBnxi_34YsJRwTpY6S5CQUXYqhyMmcv_coNtxQKLcvJ0oG9FghAmIqtzQ4z8YD8jTwbuNn3d9rPIp1AAi2oWhHbRXgNnpkAfg4Rw\" width=\"667px;\" height=\"214px;\" \/><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Agora vamos dar uma olhada em um aplicativo Java simples que pode ser usado para executar e armazenar em cache uma consulta e comparar com a execu\u00e7\u00e3o da consulta todas as vezes.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">O c\u00f3digo Java abaixo, primeiro se conecta ao banco de dados de amostras de abelhas e:<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">. executa a consulta 1 vez e a l\u00ea do cache n vezes ou<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">. executa a consulta n vezes<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Em ambos os casos, um cron\u00f4metro \u00e9 iniciado antes e depois para medir o tempo de execu\u00e7\u00e3o.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">O c\u00f3digo \u00e9 muito simples, n\u00e3o usa par\u00e2metros para a consulta, mas usa includeDocs para recuperar todos os documentos JSON associados aos resultados da consulta em vez de apenas os IDs dos documentos.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Para saber mais sobre exibi\u00e7\u00f5es e consultas no Couchbase, leia: <\/span><a style=\"text-decoration: none\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/docs\/couchbase-devguide-2.1.0\/indexing-querying-data.html\/\"><span style=\"font-size: 16px;font-family: Arial;color: #0000ff;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline\">https:\/\/www.couchbase.com\/docs\/couchbase-devguide-2.1.0\/indexing-querying-data.html<\/span><\/a><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">O c\u00f3digo-fonte completo \u00e9:<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\/\/ @author Alexis Roos<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">pacote com.couchbase.dev.examples;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">import com.couchbase.client.CouchbaseClient;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">import com.couchbase.client.protocol.views.*;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">importar java.net.URI;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">importar java.util.LinkedList;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">importar java.util.List;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">classe p\u00fablica CachedQuery {<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0public static void main(String args[]) {<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List uris = new LinkedList();<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0uris.add(URI.create(\"https:\/\/127.0.0.1:8091\/pools\"));<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0CouchbaseClient client = null;<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0tente {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cliente = novo CouchbaseClient(uris, \"beer-sample\", \"\");<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int requestCount = 100;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0double t1 = System.currentTimeMillis();<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0View view = client.getView(\"beer\", \"brewery_beers\");<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Consulta = new Query();<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0query.setIncludeDocs(true).setLimit(10000);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0query.setStale(Stale.FALSE);<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Fazendo a consulta uma \u00fanica vez e armazenando-a em cache<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ViewResponse result = client.query(view, query);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0client.set(\"cachedBrewery_beersQuery\", 0, result.toString());<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Uso do cache para solicita\u00e7\u00f5es subsequentes<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for (int i = 0; i &lt; requestCount - 1; i++) {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0String cachedIndex = (String) client.get(\"cachedBrewery_beersQuery\");<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0double t2 = System.currentTimeMillis();<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(\"Teste com cache conclu\u00eddo em \" + (t2 - t1) \/ 1000 + \" segundos\");<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0t1 = System.currentTimeMillis();<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Consultando todas as vezes<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for (int i = 0; i &lt; requestCount; i++) {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0result = client.query(view, query);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0t2 = System.currentTimeMillis();<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(\"O teste sem cache foi conclu\u00eddo em \" + (t2 - t1) \/ 1000 + \" segundos\");<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cliente.shutdown();<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} catch (Exception e) {<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.err.println(\"Erro ao conectar-se ao Couchbase: \" + e.getMessage());<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.exit(0);<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00a0\u00a0\u00a0}<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">}<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">A execu\u00e7\u00e3o do c\u00f3digo produz os dois resultados do teste, que para 100 consultas em s\u00e9rie produz:<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Cambria;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Teste com cache conclu\u00eddo em 3,755 segundos<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Cambria;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">O teste sem cache foi conclu\u00eddo em 19,835 segundos<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">N\u00e3o s\u00f3 o teste com cache \u00e9 muito mais r\u00e1pido, mas tamb\u00e9m requer menos recursos no servidor Couchbase.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">O gr\u00e1fico a seguir mostra a m\u00e9trica de opera\u00e7\u00f5es por segundo para o bucket de amostra de cerveja e o primeiro pequeno aumento corresponde ao teste com cache (essencialmente mapeando o n\u00famero de documentos para cervejarias e cervejas, pois a consulta \u00e9 executada apenas uma vez), enquanto o restante da curva maior mostra que a consulta foi executada muitas vezes e, portanto, resultou em muito mais opera\u00e7\u00f5es por segundo.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/66yA3BecvZ73bSpADJg_WzAv_xC3vIj8_klqNk01zZyIZhcHZxfsdta7TX38i45JIwd026Ql-uypZOAa2eRRs5fazx4HrNnlN0n4pbWeCZnBs_VI3tSmPRiS7Bs9RyMpgQ\" width=\"623px;\" height=\"468px;\" \/><\/p>\n<p>&nbsp;<\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">\u00c9 f\u00e1cil usar o armazenamento em cache para consultar exibi\u00e7\u00f5es, e \u00e9 simples configurar um programa que consultar\u00e1 periodicamente a exibi\u00e7\u00e3o e armazenar\u00e1 o resultado no servidor Couchbase, onde ser\u00e1 armazenado em cache. Por sua vez, os aplicativos podem usar esse valor em cache para obter efici\u00eancia.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1;margin-top: 0pt;margin-bottom: 0pt\"><span style=\"font-size: 16px;font-family: Arial;color: #000000;background-color: transparent;font-weight: normal;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline\">Isso deve ser usado conforme apropriado, com base nos casos de uso do aplicativo.<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Starting from version 2.0, Couchbase server offers a powerful way of creating indexes for JSON documents through the concept of views. &nbsp; Using views, it is possible to define primary indexes, composite indexes and aggregations allowing to: . query documents [&hellip;]<\/p>","protected":false},"author":15,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9417,1812],"tags":[1239,1241],"ppma_author":[8994],"class_list":["post-1523","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-performance","category-n1ql-query","tag-caching","tag-views"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Caching Queries Results for High Performance | Couchbase<\/title>\n<meta name=\"description\" content=\"This blog provides examples of how query results can be cached into Couchbase to be retrieved from the cache instead of being served from index on disk.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/caching-queries-couchbase-high-performance\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Caching queries in Couchbase for high performance\" \/>\n<meta property=\"og:description\" content=\"This blog provides examples of how query results can be cached into Couchbase to be retrieved from the cache instead of being served from index on disk.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/caching-queries-couchbase-high-performance\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-16T19:21:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:20:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lh6.googleusercontent.com\/_oXSD-xwVf19lCK_ay7AV4-7QA5xp8J0_gvleCdBxAnr7p83PWMWfTRPdhbaii6U8UxVaZAYtkb9g7wthcL0cKhRveyh7E3MzPqppp4dhqO8IBB0SyUzNgaZxbfft46jqw\" \/>\n<meta name=\"author\" content=\"Alexis Roos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alexis Roos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/\"},\"author\":{\"name\":\"Alexis Roos\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/590e3e4872f83fe795d5a39eef3f9fae\"},\"headline\":\"Caching queries in Couchbase for high performance\",\"datePublished\":\"2014-12-16T19:21:01+00:00\",\"dateModified\":\"2025-06-14T03:20:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/\"},\"wordCount\":965,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"caching\",\"views\"],\"articleSection\":[\"High Performance\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/\",\"name\":\"Caching Queries Results for High Performance | Couchbase\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T19:21:01+00:00\",\"dateModified\":\"2025-06-14T03:20:42+00:00\",\"description\":\"This blog provides examples of how query results can be cached into Couchbase to be retrieved from the cache instead of being served from index on disk.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Caching queries in Couchbase for high performance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/590e3e4872f83fe795d5a39eef3f9fae\",\"name\":\"Alexis Roos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/0ab9bfaebda64901a6d385eb29a1eb04\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1af4f7380fe5fbd14381a9496c85b09b40d47524abcf8d3c68706a59b80c00c7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1af4f7380fe5fbd14381a9496c85b09b40d47524abcf8d3c68706a59b80c00c7?s=96&d=mm&r=g\",\"caption\":\"Alexis Roos\"},\"description\":\"Alexis Roos is senior engineering manager at Salesforce. Alexis has over 20 years of software engineering experience with the last five years focused on large-scale data science and engineering, working for SIs in Europe, Sun Microsystems\/Oracle, and several startups, including Radius Intelligence, Concurrent, and Couchbase.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/alexis-roos\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Caching Queries Results for High Performance | Couchbase","description":"Este blog fornece exemplos de como os resultados da consulta podem ser armazenados em cache no Couchbase para serem recuperados do cache em vez de serem servidos a partir do \u00edndice no disco.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/caching-queries-couchbase-high-performance\/","og_locale":"pt_BR","og_type":"article","og_title":"Caching queries in Couchbase for high performance","og_description":"This blog provides examples of how query results can be cached into Couchbase to be retrieved from the cache instead of being served from index on disk.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/caching-queries-couchbase-high-performance\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-16T19:21:01+00:00","article_modified_time":"2025-06-14T03:20:42+00:00","og_image":[{"url":"https:\/\/lh6.googleusercontent.com\/_oXSD-xwVf19lCK_ay7AV4-7QA5xp8J0_gvleCdBxAnr7p83PWMWfTRPdhbaii6U8UxVaZAYtkb9g7wthcL0cKhRveyh7E3MzPqppp4dhqO8IBB0SyUzNgaZxbfft46jqw","type":"","width":"","height":""}],"author":"Alexis Roos","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Alexis Roos","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/"},"author":{"name":"Alexis Roos","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/590e3e4872f83fe795d5a39eef3f9fae"},"headline":"Caching queries in Couchbase for high performance","datePublished":"2014-12-16T19:21:01+00:00","dateModified":"2025-06-14T03:20:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/"},"wordCount":965,"commentCount":4,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["caching","views"],"articleSection":["High Performance","SQL++ \/ N1QL Query"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/","url":"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/","name":"Caching Queries Results for High Performance | Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T19:21:01+00:00","dateModified":"2025-06-14T03:20:42+00:00","description":"Este blog fornece exemplos de como os resultados da consulta podem ser armazenados em cache no Couchbase para serem recuperados do cache em vez de serem servidos a partir do \u00edndice no disco.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/caching-queries-couchbase-high-performance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Caching queries in Couchbase for high performance"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/590e3e4872f83fe795d5a39eef3f9fae","name":"Alexis Roos","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/0ab9bfaebda64901a6d385eb29a1eb04","url":"https:\/\/secure.gravatar.com\/avatar\/1af4f7380fe5fbd14381a9496c85b09b40d47524abcf8d3c68706a59b80c00c7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1af4f7380fe5fbd14381a9496c85b09b40d47524abcf8d3c68706a59b80c00c7?s=96&d=mm&r=g","caption":"Alexis Roos"},"description":"Alexis Roos \u00e9 gerente s\u00eanior de engenharia na Salesforce. Alexis tem mais de 20 anos de experi\u00eancia em engenharia de software, sendo que os \u00faltimos cinco anos foram dedicados \u00e0 ci\u00eancia e engenharia de dados em larga escala, trabalhando para SIs na Europa, Sun Microsystems\/Oracle e v\u00e1rias startups, incluindo Radius Intelligence, Concurrent e Couchbase.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/alexis-roos\/"}]}},"authors":[{"term_id":8994,"user_id":15,"is_guest":0,"slug":"alexis-roos","display_name":"Alexis Roos","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/1af4f7380fe5fbd14381a9496c85b09b40d47524abcf8d3c68706a59b80c00c7?s=96&d=mm&r=g","author_category":"","last_name":"Roos","first_name":"Alexis","job_title":"","user_url":"","description":"Alexis Roos \u00e9 gerente s\u00eanior de engenharia na Salesforce. Alexis tem mais de 20 anos de experi\u00eancia em engenharia de software, sendo que os \u00faltimos cinco anos foram dedicados \u00e0 ci\u00eancia e engenharia de dados em larga escala, trabalhando para SIs na Europa, Sun Microsystems\/Oracle e v\u00e1rias startups, incluindo Radius Intelligence, Concurrent e Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=1523"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1523\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=1523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1523"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=1523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}