Neste artigo veremos os principais ganhos obtidos com o uso do Redis e como integrá-lo a nossos projetos Java a partir do seu driver mais popular: o projeto Jedis.
ArtigosJavaRedis e Java - Revista Java Magazine 114
Artigo do tipo Tutorial
Recursos especiais neste artigo: Contém nota Quickupdate, Conteúdo sobre boas práticas.
Redis e Java Neste artigo veremos os
principais ganhos obtidos com o uso do Redis e como integrá-lo a nossos
projetos Java a partir do seu driver mais popular: o projeto Jedis. Para
finalizar, conheceremos uma faceta surpreendente deste banco de dados, a sua
implementação do padrão publish/subscribe, o que o torna uma alternativa
interessante ao tradicional JMS.
Em que situação o tema é
útil Este tema é útil em situações nas
quais precisamos lidar com informações semi estruturadas e cuja principal forma
de acesso se dá por seu identificador. Além disto, como veremos neste artigo, o
Redis também pode ser visto como uma alternativa ao JMS, por implementar de uma
forma bastante simples o padrão publicador/assinante.
A consolidação do modelo relacional nas últimas três décadas
trouxe a falsa impressão de que esta se trata da única abordagem existente ao
lidarmos com o problema da persistência de dados. Quando pensamos em banco de
dados, logo vêm à mente ideias como tabelas, índices, linhas e colunas.
Com o tempo observou-se um crescimento significativo do
tamanho das bases de dados e, com este aumento, as limitações do modelo
relacional – não raro resultantes de sua má aplicação – se tornaram mais
claras, colocando em evidência uma série de bancos de dados identificados por
NoSQL, que nos oferecem uma alternativa ao SQL e ao modelo relacional.
Neste novo contexto o desenvolvedor se vê diante de novas
abordagens no modo como a informação é persistida e recuperada. Enquanto no SQL
lidamos com uma linguagem declarativa, no NoSQL muitas vezes recuperamos os
dados de forma imperativa: um modo de trabalhar bastante diferente daquele com
o qual estamos habituados.
E nesta nova e inicialmente “assustadora” realidade temos o
Redis, um banco de dados NoSQL baseado no modelo chave-valor que, como veremos,
é um poderoso complemento ao cinto de utilidades de todo desenvolvedor e
arquiteto que tenha por objetivo suprir as fissuras que agora se mostram
evidentes no modelo relacional.
NoSQL?
NoSQL compreende um conjunto de ferramentas complementares e
concorrentes que nos fornecem uma rica alternativa ao modelo relacional e à
linguagem SQL, que é intrinsecamente relacionada a este tradicional paradigma.
O significado do termo NoSQL possui duas interpretações. A mais ingênua o
entende como um substituto completo ao padrão relacional, enquanto a segunda o
vê como um complemento.
Para melhor entender o NoSQL, faz-se necessário que sejam
expostas as características básicas do modelo relacional (SQL) que,
simplificando, seriam as seguintes:
·
Toda informação é armazenada em tabelas, que são
estruturas de dados compostas por linhas (registros) e colunas (campos);
·
Todo registro é bem estruturado, ou seja, é
composto por um número finito de campos, cada qual com um tipo de dados bem
definido e, muitas vezes, com regras de validação em cada um já embutida;
·
Tem o objetivo de minimizar a redundância dos
dados, o que é feito através do relacionamento entre as tabelas;
·
É recomendada a existência de uma coluna para
identificar unicamente o registro (a famosa chave primária), que será usada,
dentre outras coisas, também no relacionamento entre as tabelas.
Uma característica fundamental do modelo relacional diz
respeito ao modo como recuperamos as informações: por meio da linguagem SQL.
Toda consulta é feita declarativamente, ou seja, informamos o quê deve ser buscado e não como. É trabalho do SGBD escolher quais
algoritmos devem ser empregados, escolha esta na maior parte das vezes bem
sucedida, aumentando significativamente a produtividade do desenvolvedor, que
antes do sucesso do modelo relacional precisava implementar estes algoritmos
manualmente. Entretanto, conforme nossa modelagem se torna mais complexa e o
tamanho dos bancos de dados aumenta, perdemos a previsibilidade do custo
computacional de nossas consultas. Deste modo, uma consulta envolvendo junções
que inicialmente apresentava performance excelente, ao lidar com bases de dados
maiores, normalmente distribuídas em mais de um servidor, acaba por se mostrar
ineficiente, muitas vezes forçando a equipe de desenvolvimento a desnormalizar
tabelas ou buscar estratégias alternativas para resolver o problema.
Neste momento, a natureza declarativa que até então se
mostrava como vantajosa, se torna um problema. Normalmente a solução para estas
limitações do modelo relacional consiste em transferir a responsabilidade da
implementação dos algoritmos de busca para o interior da nossa aplicação, tornando
a solução SQL aquilo que ela não é, isto é, imperativa.
O modo como as informações são organizadas no modelo
relacional também se mostra um desafio neste mundo de bases de dados enormes em
complexidade e/ou tamanho. Estamos lidando com uma solução restritiva, onde
cada campo agrega uma série de regras que definem o tipo de informação a ser
armazenada. Chamamos estas regras de esquema (ver Nota DevMan 1), e sua presença é uma solução excelente quando
lidamos com informações bem estruturadas. Infelizmente o que se mostra com o
passar do tempo é que a maior parte das informações presentes no mundo não é
estruturada. Não raro o desenvolvedor se depara com situações nas quais apenas
uma parcela pequena das colunas de uma tabela é preenchida, o que torna todas
as demais inúteis na maior parte dos registros.
É importante que não caiamos aqui na ilusão causada pela
empolgação atual com bases de dados NoSQL. O modelo relacional é sem sombra de
dúvidas o mais bem sucedido da história da computação. Suas deficiências são em
sua maior parte fruto de sua má aplicação. Para o que foi originalmente
concebido: armazenar informações bem estruturadas na forma de tabelas
relacionadas entre si, temos um modelo com raríssimas falhas. No entanto, é
interessante observar que há diversos casos nos quais não obtemos os dados de
forma declarativa por estes não serem facilmente representáveis no formato
tabular. Para estes casos entram em cena as opções NoSQL, que na maior parte
das vezes se mostram não como substitutos, mas como excelentes acessórios à
disposição do desenvolvedor ao enfrentar este tipo de dificuldade.
Nota DevMan 1. Esquema
No
jargão relacional, esquema (schema) diz respeito às regras que aplicamos na
definição dos campos de uma tabela, ou seja, qual o tipo de cada campo, assim
como o conjunto de regras de validação aplicadas a cada um (como não aceitar
nulidade, por exemplo).
Um
atributo básico de todo esquema consiste na limitação do número de campos
presente em cada tabela que, obrigatoriamente, deve ser finito.
Oferta válida para todos os planos durante o mês de dezembro
+3 MESES
Grátis
Veja os resultado dos nossos alunos
Conquistas reais de quem está aplicando o método
<Perguntas frequentes>
Carreira
Por onde devo iniciar os estudos?
Recomendamos começar pelo Plano de Estudo Carreira Programador Front-End. Essa área da programação é mais visual e intuitiva, tornando-a ideal para iniciantes. No Front-End, você aprenderá a criar a parte visual dos sites, como layout, cores e interatividade. Depois de dominar o Front-End, você pode avançar para Programador Back-End, onde aprenderá a lidar com a lógica e o funcionamento interno dos sites, e, finalmente, para Programador Mobile, focando no desenvolvimento de aplicativos para smartphones. Nossa metodologia é estruturada de forma progressiva para garantir que você desenvolva confiança e experiência ao criar projetos reais, como sites estáticos e dinâmicos.
Em quanto tempo vou me tornar um programador?
O tempo necessário para se tornar um programador varia de acordo com a dedicação de cada estudante. Com nossa metodologia, que inclui um Plano de Estudo detalhado e suporte contínuo, você pode se tornar um programador de 6 meses a um ano, dependendo do seu ritmo e esforço. Nossa abordagem prática e orientada a projetos ajudará a acelerar seu aprendizado.
Eu preciso de um diploma de faculdade para começar a atuar como programador?
Não. Ser programador é uma excelente oportunidade para quem não possui diploma de faculdade. Muitas empresas contratam baseadas nas habilidades técnicas e experiência prática, não necessariamente em diplomas. Após conquistar uma vaga, você pode optar por complementar sua formação com um diploma.
Por que a programação se tornou a profissão mais promissora da atualidade?
A necessidade de programadores cresceu exponencialmente, especialmente após a pandemia de Covid-19, que forçou muitas empresas a se adaptarem ao digital. Com o crescimento das empresas de tecnologia, a demanda por programadores aumentou. Atualmente, há mais de 200 mil vagas abertas no Brasil devido à falta de profissionais qualificados.
Metodologia
Quais são os principais diferenciais da DevMedia?
Didática e Metodologia
Com mais de 20 anos de experiência, nossa metodologia foca em menos aulas e mais prática. Desenvolvemos dezenas de projetos e exercícios para ajudar você a se tornar um programador completo. Nossos projetos são desafiadores e autênticos, não apenas exercícios repetitivos.
Projetos reais e exercícios
Você desenvolverá diversos projetos práticos em cada carreira (Front-End, Back-End e Mobile), recebendo mentoria e suporte contínuo. A prática é essencial, e oferecemos milhares de exercícios para ajudar você a fixar o conteúdo e melhorar sua posição no ranking.
Suporte ao aluno
Nossa plataforma oferece suporte dedicado com professores experientes, respondendo suas dúvidas em menos de uma hora. Isso garante que você receba a ajuda necessária durante toda a sua jornada de aprendizado.
Gamificação
A DevMedia utiliza gamificação para tornar o aprendizado mais envolvente e motivador. Você acumula pontos e moedas por acertos, que podem ser trocados por produtos e customizações no seu card pessoal. Além disso, o sistema de ranking mensal incentiva a competição amigável e a melhoria contínua.
O que eu irei aprender estudando pela DevMedia?
Ao estudar conosco, você se tornará um programador Full Stack, dominando Front-End, Back-End e Mobile. Utilizamos a linguagem JavaScript, a mais utilizada no mercado, preparando você para criar sistemas webs e aplicativos celulares. Nossa abordagem prática inclui exercícios para fixar o conhecimento e desenvolvimento de projetos reais que te preparam, para o mercado de trabalho.
Quais as vantagens de aprender programação através da linguagem JavaScript?
Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
Elá é Full Stack. Ela te permite criar aplicações Front-end, Back-end e Mobile. Isso acelera muito sua carreira e aumenta suas possibilidades de pegar trabalhos autônomos e conquistar uma vaga no mercado.
Ela é fácil de aprender. Como ela não exige conhecimento inicial em “Orientação a Objetos” ela se torna mais simples com uma curva de aprendizado suave e vai te permitir começar a programar mais rápido do que outras linguagens
A plataforma oferece certificados?
Sim, oferecemos dois tipos de certificados: o certificado de conclusão, que você adquire ao consumir o conteúdo, e o certificado de autoridade, que você obtém ao acertar exercícios. Ambos possuem carga horária, que pode ser utilizada para fins acadêmicos, como atividades complementares na faculdade, e também para comprovações em processos seletivos ou no seu currículo.
A plataforma tem suporte ao aluno, como funciona?
Sim, temos uma equipe de programadores pronta para ajudar com todas as suas dúvidas! Durante o horário comercial, o tempo médio de resposta é de até 10 minutos. E não se preocupe, também oferecemos suporte à noite e nos finais de semana, com um prazo de resposta um pouco maior.
A DevMedia me forma como programador Full Stack?
Sim! Oferecemos uma formação completa, do zero até Full Stack. Nosso foco é na prática, então você vai encontrar muitos exercícios e projetos reais ao longo do curso. Garantimos que você sairá com a autonomia necessária para desenvolver seus próprios projetos com confiança!
Tem horário para as aulas?
Não, não temos horários fixos para as aulas. Todo o nosso conteúdo está disponível para você acessar a qualquer momento, permitindo que você estude conforme sua própria disponibilidade e ritmo. Dessa forma, você pode integrar o aprendizado à sua rotina de maneira mais flexível e eficaz.
Por que a DevMedia não usa videoaulas em sua didática?
Nosso foco principal é formar programadores de verdade. Sabemos que o dia a dia de um programador envolve muita leitura, interpretação e escrita de código. Por isso, nosso conteúdo é desenvolvido para ambientar você nesse processo desde o início, proporcionando mais autonomia e acelerando seu aprendizado.
Na vídeo-aula é o professor que está lendo, interpretando e escrevndo o código para você, isso limita o seu progresso. Ao ler e interagir diretamente com o conteúdo, você exercita sua capacidade de leitura e concentração, além de poder avançar no seu próprio ritmo. Dessa forma, você se torna um programador mais independente e preparado para os desafios reais do mercado.
Preciso de um computador específico para estudar na DevMedia?
Não é necessário nada específico. Qualquer computador com processador atual e memória de 8 GB é suficiente.
Eu consigo estudar pelo celular?
Sim, a DevMedia possui um aplicativo que te permite seguir com seus estudos de qualquer lugar.
A DevMedia tem aplicativo?
Sim, nosso aplicativo está disponível na Play Store e na Apple Store, permitindo que você estude de forma prática e conveniente em qualquer lugar.
Preciso estar na faculdade para acompanhar os estudos na DevMedia?
Não, a faculdade não é necessária. Você não precisa de nenhum conhecimento prévio para iniciar os estudos na nossa plataforma.
Assinatura e Pagamentos
Quais são os planos de assinatura disponíveis?
Oferecemos o plano anual, o valor total é lançado no cartão de crédito, parcelado em 12 vezes, e você precisa dispor do valor total no limite do seu cartão. Você também pode optar por pagar no PIX
Adquirindo o plano, terei acesso a todo o conteúdo?
Sim, ao assinar nossa plataforma, você desbloqueia acesso total a todo o nosso conteúdo, sem precisar comprar nada separadamente.
A plataforma tem planos vitalícios?
Não, nossos planos são anuais, garantindo que você tenha acesso contínuo às atualizações mais recentes e aos novos conteúdos. A tecnologia evolui rapidamente, e um plano vitalício oferece um conteúdo estático que se tornará ultrapassado em pouco tempo. Com nossos planos anuais, você está sempre à frente, aprendendo as novidades e tendências mais atuais no mundo da programação.
A DevMedia tem fidelidade?
Sim, nosso plano tem uma fidelidade de 12 meses, o que garante o tempo ideal para você explorar nosso conteúdo e desenvolver a autonomia necessária para trabalhar com programação.
Como funciona o cancelamento?
Nós garantimos seu direito de cancelamento com reembolso total dentro dos primeiros 7 dias.
Para que você aproveite ao máximo seu investimento, oferecemos suporte personalizado para orientá-lo na utilização da plataforma. Também temos a opção de transferência de titularidade do plano, permitindo que outra pessoa aproveite o restante do seu período de assinatura.
Cadastro
Como excluir meus dados da plataforma?
Para excluir seus dados da plataforma, acesse o link : https://www.devmedia.com.br/fale-conosco/ e abra um protocolo de 'Exclusão de dados'. Nossa equipe processará a solicitação e removerá todas as informações do seu cadastro.
Compartilhe esse conteúdo com um amigo!
Faça login para ganhar recompensas.
Ou
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.