Conhecimento de NoSQL em Redis (Prefácio)

Conhecimento relacionado ao NoSQL

1. A evolução do mysql independente

1. Mysql autônomo (evolução 1)

1.1 Processo de acesso do usuário

APP——>DAL——>Mysql
insira a descrição da imagem aqui

1.2 Antecedentes

O tráfego de um site básico geralmente não é muito grande e um único banco de dados é totalmente suficiente.

2. Cache (evolução 2)

2.1 Estrutura

Memcached (cache) + MySQL + divisão vertical

2.2 Introdução

Como 80% do site é lido, cada consulta é muito problemática, portanto, para reduzir a pressão dos dados, você pode usar o cache para garantir a eficiência.

2.3 Processo de desenvolvimento

Otimize a estrutura e o índice de dados -> cache de arquivo (IO) -> Memcached (o ano mais quente)

2.4 Funções

Realize a separação leitura-gravação e armazenamento em cache
insira a descrição da imagem aqui

3. Cluster (evolução 3)

3.1 Estrutura

Subbanco de dados e tabela + divisão horizontal + cluster MySQL + cache

3.2 Introdução

MyISAM: Os bloqueios de tabela afetam muito a eficiência e ocorrerão sérios problemas de bloqueio sob alta simultaneidade.
Innodb: bloqueios de linha

3.3 Processo

Use subbanco de dados e subtabela para resolver a pressão de escrita, e o MySQL também introduz o conceito de partição de tabela

3.4 Função

insira a descrição da imagem aqui

4. agora

4.1 Estrutura

Balanceamento de carga + subbanco de dados e subtabela + divisão horizontal + cluster MySQL + cache + vários servidores

4.2 Antecedentes

A quantidade de dados é grande e muda rapidamente, e bancos de dados relacionais como o MySQL não são suficientes.

4.3 Função

insira a descrição da imagem aqui

2. Visão geral do NoSQL

1. Introdução

NoSQL geralmente se refere a bancos de dados não relacionais. Com o nascimento da Internet web 2.0, é difícil para os bancos de dados relacionais tradicionais lidar com comunidades de grande escala e alta simultaneidade. Portanto, o NoSQL está se desenvolvendo rapidamente no atual ambiente de big data. (Muitos tipos de dados são informações pessoais do usuário, rede social, localização geográfica, o armazenamento desses tipos de dados não precisa de um formato fixo)

2. Recursos

(1) Fácil de expandir (sem relacionamento entre dados, fácil de expandir)
(2) Grande volume de dados e alto desempenho (Redis grava 80.000 vezes por segundo, lê 110.000 e o nível de registro de cache do NoSQL é um Cache refinado, o desempenho será relativamente alto)
(3) O tipo de dados é diverso (não há necessidade de projetar o banco de dados com antecedência, basta pegá-lo e usá-lo)

3. A diferença entre RDBMS e NoSQL

3.1 RDBMS (banco de dados relacional)

Organização estruturada, SQL, dados e relacionamentos são armazenados em tabelas separadas, aderem às regras ACID, etc.

3.2 NoSQL (banco de dados não relacional)

Armazenamento não é apenas dados, não há linguagem de consulta fixa, armazenamento de pares de valores-chave, armazenamento de colunas, armazenamento de documentos,
consistência eventual de banco de dados gráfico, teorema CAP e BASE, alto desempenho, alta disponibilidade e alta escalabilidade.

Três, 3V + 3 de altura

1. 3V na era do big data

(1) Grande volume
(2) Variedade
(3) Velocidade em tempo real

2. Três pontos altos na era do big data

(1) Alta simultaneidade
(2) Alta escalabilidade
(3) Alto desempenho

4. Visão geral técnica

1. Informações básicas do produto

1.1 Cenários

Nome, preço, informações comerciais

1.2 Tecnologia

Banco de dados relacional (MySQL/Oracle)

2. Descrição e comentários do produto

2.1 Cenários

mais texto

2.2 Tecnologia

Banco de dados de documentos (MongoDB)

3. Fotos

3.1 Cenários

imagem da loja

3.2 Tecnologia

Sistema de arquivos distribuído FastDFS
Sistema de arquivos Taobao TFS
Sistema de arquivos Google GFS
Sistema de arquivos Hadoop HDFS
Alibaba Cloud File System OSS

4. As palavras-chave do produto

4.1 Cenários

procurar

4.2 Tecnologia

Mecanismo de pesquisa solr, elasticsearch, ISerach

5. Informações de banda de commodities populares

5.1 Cenários

Vendas de produtos

5.2 Tecnologia

Banco de dados de memória Redis, Tair, Memache...

6. Transações de mercadorias, interface de pagamento externo

Aplicativo de três partes

5. Quatro categorias de NoSQL

1. Par chave-valor KV

1.1 Exemplo

Sina: Redis
Meituan: Redis + Tair
Ali, Baidu: Redis + memecache

1.2 Cenários de aplicação

O cache de conteúdo é usado principalmente para lidar com altas cargas de acesso de grandes quantidades de dados e também é usado em alguns sistemas de log e assim por diante.

1.3 Modelo de Dados

Chave aponta para o par chave-valor de Valor, que geralmente é implementado por tabela hash.

1.4 Vantagens

pesquisa rápida

1.5 Desvantagens

Os dados não são estruturados e geralmente são tratados apenas como string ou dados binários

2. Banco de dados de documentos (o formato bson é igual ao json)

1.1 MongoDB,CouchDB

MongoDB é um banco de dados baseado em armazenamento distribuído de arquivos. É escrito em C++ e é usado principalmente para processar um grande número de documentos
. MongoDB é um produto intermediário entre bancos de dados relacionais e bancos de dados não relacionais. Como um banco de dados relacional.

1.2 Cenários de aplicação

Aplicação web (semelhante ao Key-Value, o Value é estruturado, a diferença é que o banco de dados consegue entender o conteúdo do Value)

1.3 Modelo de Dados

O par de valores-chave correspondente a Valor-chave e Valor são dados estruturados.

1.4 Vantagens

Os requisitos de estrutura de dados não são rígidos, a estrutura da tabela é variável e não há necessidade de pré-definir a estrutura da tabela como um banco de dados relacional.

1.5 Desvantagens

O desempenho da consulta não é alto e falta uma sintaxe de consulta unificada.

3. Banco de dados de armazenamento de colunas

3.1 Exemplo

HBase (grandes dados)

3.2 Cenários de aplicação

sistema de arquivos distribuído

3.3 Modelo de Dados

Armazene em clusters de colunas, armazene dados na mesma coluna juntos

3.4 Vantagens

A velocidade de pesquisa é rápida, a escalabilidade é forte e é mais fácil realizar expansão distribuída.

3.5 Desvantagens

Funções relativamente limitadas

4. Banco de dados relacional gráfico

Não é um banco de dados que armazena imagens, mas armazena relacionamentos

4.1 Exemplos

Neo4J, InfoGrid, Gráfico Infinito

4.2 Cenários de aplicação

Redes sociais, sistemas de recomendação, etc., com foco na construção de gráficos de relacionamento

4.3 Modelo de Dados

estrutura gráfica

4.4 Vantagens

Use algoritmos relacionados à estrutura do gráfico, como endereçamento de caminho mais curto, pesquisa de relacionamento de N graus, etc.

4.5 Desvantagens

Em muitos casos, é necessário calcular todo o gráfico para obter as informações necessárias, e esta estrutura não é fácil de distribuir.

Acho que você gosta

Origin blog.csdn.net/qq_46106857/article/details/128226180
Recomendado
Clasificación