Prévia do material em texto
NOSQL – Chave Valor (Redis) Nome: Joel Sousa Matricula : 201908181231. 1. Banco de dados NOSQL Chave-Valor a. Breve histórico, Definição O Redis é um armazenamento de estrutura de dados de chave-valor de código aberto e na memória. O Redis oferece um conjunto de estruturas versáteis de dados na memória que permite a fácil criação de várias aplicações personalizadas. b. Principais características: consistência, transações, disponibilidade e escalabilidade Desempenho muito rápido: Todos os dados do Redis residem na memória principal do seu servidor, em contraste com a maioria dos sistemas de gerenciamento de banco de dados que armazenam dados em disco ou SSDs. Estruturas de dados na memória: O Redis permite que os usuários armazenem chaves que fazem o mapeamento para vários tipos de dados. Versatilidade e facilidade de uso: O Redis é disponibilizado com várias ferramentas que tornam o desenvolvimento e as operações mais rápidas e fáceis. Replicação e persistência: O Redis emprega uma arquitetura no estilo mestre/subordinado e é compatível com a replicação assíncrona em que os dados podem ser replicados para vários servidores subordinados. Isso pode disponibilizar desempenho de leitura melhorado e recuperação quando o servidor primár io passar por uma interrupção. Compatibilidade com a sua linguagem de desenvolvimento preferencial: As linguagens compatíveis incluem Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go e muitas outras. c. Quando utilizar esse tipo de banco? Redis é altamente indicado para aplicações que exijam um processamento dinâmico, com acesso frequente a dados essenciais. O Redis é uma opção popular para armazenamento em cache, gerenciamento de sessões, jogos, tabelas de classificação, análises em tempo real, geoespaciais, veiculação de bate-papo, bate- papo/mensagens, streaming de mídia e aplicativos de pub/sub. d. Percentual de utilização no mercado O Redis está entre os top's 10 SGBD's mais utilizados no mercado. O Redis é o banco de dados NoSQL do tipo chave-valor mais conhecido. No mercado podemos encontrar diversas outras soluções que também são mecanismos de armazenamento baseado em chave-valor, incluindo Memcached e Hazelcast. 2. Estrutura Comentado [J.1]: Ian fica com item 1 Comentado [J.2]: Kethelly item 2 a. Estrutura de um par chave-valor (dê exemplo) STRING serve para identificar uma sequência de caracteres. Na prática, as strings são usadas para representar textos. HASH é qualquer algoritmo que mapeie dados grandes e de tamanho variável para pequenos dados de tamanho fixo. LIST transforma uma string em uma lista onde os itens da lista correspondem aos caracteres da string. SET em Redis representam conjuntos de valores que não se repetem. SORTED SET similar ao set, por não permitir valores duplicados, mas cada elemento está associado para um valor flutuante, chamado de score. b. Comparação da terminologia SQL (relacional) com a de um banco de dados baseado em chave-valor SQL Relacional : Cada tabela em um banco de dados relacional contém um ou mais dados em colunas, e cada linha, também chamada de registro, contém uma instância exclusiva de dados ou chave para os dados definidos pelas colunas. Cada tabela normalmente possui uma coluna de chave primária, um registro único dentro da tabela para identificar os registros. O relacionamento entre tabelas pode ser definido através do uso de chaves estrangeiras – um campo em uma tabela que se vincula à chave primária de outra tabela. Podemos imaginar um banco de dados relacional como um excel, onde o banco é uma planilha, cada aba um tabela que contém suas colunas e linhas. Exemplo : • Chave-Valor: São um tipo mais “simples” de banco de dados, em que cada item contém chaves e valores. Esses valores podem ser qualquer tipo de dado, um texto, um número, um JSON e eles podem ser recuperados fazendo referência a sua chave, fazendo com que sua consulta seja muito simples. Esses bancos são ótimos para quando você precisa armazenar grandes quantidades de dados, mas não precisa executar consultas complexas neles. Os usos mais comuns são para armazenamento de dados em cache. Redis e DynanoDB são provavelmente os bancos mais populares desse tipo. Exemplo : 3. Comandos para a definição da estrutura do banco de dados baseado em chave-valor a. comando para criar o Banco de dados Comentado [J.3]: Andressa e Joel item 3 (OBS: não existe tabelas em NOSQL chave valor redis) Nativamente, uma instância do Redis suporta 16 bancos de dados lógicos. Esses bancos de dados são efetivamente isolados um do outro e, quando você executa um comando em um banco de dados, ele não afeta nenhum dado armazenado em outros bancos de dados na sua instância do Redis. Os bancos de dados Redis são numerados de 0 a 15 e, por padrão, você se conecta ao banco de dados 0 quando se conecta à sua instância Redis. No entanto, você pode alterar o banco de dados que está usando com o comando select após conectar-se: <> select 15 b. comando para criar a tabela Uma chave só pode conter uma lista, embora qualquer lista possa conter mais de quatro bilhões de elementos. Redis lê listas da esquerda para a direita, e você pode adicionar novos elementos de lista à cabeça de uma lista (a extremidade "esquerda") com o comando lpush ou a cauda (a extremidade "direita") com rpush. Você também pode usar lpush ou rpush para criar uma nova lista: <> lpush chave valor c. comando para alterar a tabela Não é possível converter chaves Redis de um tipo de dados para outro, então para transformar key_philosophy3 em uma lista você precisaria excluir a chave e começar de novo com um comando lpush ou rpush d.comando para exclusão da tabela Em uma lista você precisaria excluir a chave e começar de novo com um comando lpush ou rpush 4. Comandos para o CRUD a. Inclusão de registros <> set key:() value()new b. Consulta de registros <> get key:() c. Atualização de registros <> set key:() NovoRegistro d. Exclusão de registros Comentado [J.4]: (Ian responsável pelo item 4) <> del key:() 5. Operadores para uso no modelo baseado em chave-valor Os operadores são utilizados nas nossas querys para buscar, inserir, deletar ou alterar os dados nos registros do nosso banco de dados, por exemplo, para alterar/inserir valores temos o SET, para realizar consulta temos o GET ou podemos utilizar o GETSET onde vamos consultar o valor e automaticamente atribuir um novo valor em seguida, para excluir temos o DEL ou podemos utilizar o GETDEL onde vamos consultar o valor e automaticamente excluir em seguida. 6. Funções para manipulação dos dados − para extrair um valor específico a partir de uma chave Logo quando damos um GETSET valor “NOVO ESPECIFICO” buscando um valor especifico dará null Logo em seguida damos um GET valor “NOVO ESPECIFICO” irá aparecer, pois assim conseguimos extrair um valor espeficico. - concatenação de valores <> set nome “Urbano” <>getnome <>“Urbano” <> set disciplina “Banco de Dados ” <>append disciplina “Avançados” <>mget nome disciplina 1. “Urbano” 2. “Banco de Dados Avançados” - conversão de valores Não é possível converter chaves Redis de um tipo de dados para outro, Referências Bibliográficas Sanfilippo, Salvatore, “Redis Labs”. Lançamento dez (10) de maio de 2009. Comentado [J.5]: Italo responsável pelo item 5 Comentado [J.6]: Vinicius responsável pelo item 6