Tipo de dados Redis de Redis

1. Tipo de dados de Redis

    O Redis suporta cinco tipos de dados: string, hash, lista, conjunto e ZSet.

 2. String

   2.1 Introdução ao Sting

      1. string é o tipo mais básico de redis , você pode entendê-lo como o mesmo tipo que Memcached, uma chave corresponde a um valor, mas o máximo não pode exceder 512M .

     2. O  tipo de sequência é seguro para binário . Isso significa que a cadeia redis pode conter qualquer dado. Como imagens jpg ou objetos serializados.

    2.2 Recursos de sequência

      1 . Tipo String é Redis estrutura de dados mais básico , a primeira chave é um tipo de cadeia, e várias outras estruturas são construídas sobre a base do tipo string, então o tipo de cadeia pode aprender a respeitar os outros quatro estruturas de dados Defina a base .

      2. O tipo de sequência pode realmente ser uma sequência (sequência simples, sequência complexa (xml, json), número (número inteiro, ponto flutuante), binária (imagem, áudio, vídeo).

   2.3 Cenário de aplicativo de string     

         1.  Função de cache : o caso de uso mais clássico para seqüências de caracteres, redis é a camada de cache, Mysql é a camada de armazenamento , a maioria dos dados solicitados é obtida de redis, porque redis possui as características de oferecer suporte a alta simultaneidade, portanto o cache geralmente pode acelerar a leitura O papel de escrever e reduzir a pressão de back-end.

          2. Contador : Muitos aplicativos usarão o redis como a ferramenta básica para a contagem , ele poderá realizar a função de contagem rápida e cache de consultas, e os dados poderão ser descartados para outras fontes de dados em uma única etapa. Tais como: número de vídeo playback, o número de comentários de microblog, polegares para cima, as ações, o número de coleções de vibrato obras, as vendas Jingdong de bens, o número de avaliação e assim por diante . O sistema deve usar o redis como o componente básico da contagem de reprodução de vídeo.

          3. Sessão compartilhada : no modo de cluster , no caso de poucos aplicativos, geralmente é suficiente usar a função de replicação de sessão que acompanha o contêiner.Quando o aplicativo aumenta e o sistema é relativamente complexo, geralmente é criada uma sessão centrada em bancos de dados de memória como o Redis. Serviços, sessões não são mais gerenciadas por contêineres, mas por serviços de sessão e bancos de dados em memória .  Nesse modo, desde que a alta disponibilidade e escalabilidade dos redis sejam garantidas, toda vez que a atualização do usuário ou as informações de login da consulta são obtidas diretamente do redis .

          4 . Velocidade : Por razões de segurança, o telefone permite que os usuários insiram um código de verificação a cada vez que você entrar, a fim de não interface de mensagem curta é acessado com freqüência, ele irá limitar a freqüência de usuários para obter um código de verificação a cada minuto.

    2.4String de comandos usados 

01 set: usado para definir o valor da chave especificada, suporte para definir a chave existente
02 get: used para obter o valor da chave especificada
03 setnx: usado para definir o valor da chave especificada, se a chave já existir, ela retornará 0. nx significa: não existe
04 setex: é usado para definir o valor da chave especificada e o tempo efetivo da chave precisa ser especificado. Após 10 segundos, ele retorna nulo
05 setrange: recobre o conteúdo para o valor da chave especificado, substitua o conteúdo de 4 para a posição especificada e o resultado final é ming
06 mset: define o valor do valor correspondente à chave em lotes e define o nome de usuário e a idade da seguinte maneira , Sex respectivamente correspondem a wangwu, 10, 10
07 msetnx: defina o valor do valor correspondente à chave em lotes e retorne 0 se a chave já existir. Devido às configurações acima, o resultado retorna 0
08 getset: defina um novo valor para a chave especificada e retorne aos dados originais.
09 getrange: retorna uma substring de uma string, que é equivalente à interceptação de string, o subscrito 0 é a posição inicial, o subscrito 3 é a posição final
10 mget: obtém o valor correspondente à chave em lotes, mostra
11 incr: especificará O valor do número armazenado na chave é incrementado em um e deve ser do tipo numérico; caso contrário, retornará uma mensagem de erro
11 incrby: aumente o número armazenado na chave especificada em

12decr: diminui o valor numérico armazenado na chave especificada por um, deve ser do tipo numérico; caso contrário, retornará uma mensagem de erro
13 decrby: diminui o número armazenado na chave especificada em quanto
14 anexos: anexa a string
15 ao valor na chave especificada strlen: retorna o comprimento do valor na chave especificada

3. Hash

   3.1 Introdução ao Hash

     O hash Redis é uma coleção de pares de chave / valor , semelhante ao Map <String, Object> em Java,

      O hash Redis é uma tabela de mapeamento de campo e valor do tipo string, o Hash é particularmente adequado para armazenar objetos.

   3.2  Cenários de aplicativos Hash

      A estrutura de hash é mais intuitiva do que as informações de cache serializadas da string e é mais conveniente na operação de atualização.

      Portanto, armazene alguns dados estruturados, como apelido do usuário, idade, sexo, pontos etc., armazene dados de um objeto de informações do usuário e pode ser um carrinho de compras .

   3.3 Comandos Hash

      

. 1 .hset forneceu uma chave de Campo valor de hash, mas só pode definir um atributo no hash, se você deseja definir uma pluralidade de propriedades em massa, você precisa usar o comando hmset
 2 .hget Campo tecla correspondente ao hash da chave adquiriu especificado correspondente aos valores de atributos especificados, cada um também pode obter um valor correspondente ao atributo, se você quiser obter o valor da propriedade em massa, a necessidade de usar o comando hmget
 . 3 .hmset valor Key Field [(valor Field) ...] proporcionou uma dispersão coluna, por exemplo: nome hmset key1 solitário Idade 18 é , de modo que o prendedor vai gerar um key1 chave da mistura, o 
nome do atributo de hash e há dois anos de idade, os valores correspondentes são solitários e 18 é
de 4. .hmget o campo ... retorna a chave chave especificada correspondente à chave hash é especificado - nome que corresponde a um valor, por exemplo, com base em exemplos, hmget key1 instrução nome da chamada é o resultado da key1 de hash correspondente, a obtenção de um valor correspondente ao nome do atributo solitária é o resultado de um 5 -chave .hdel campo, campo, ... ... informações apagar o hash da chave correspondente especificado especificado. Por exemplo, Key1: {nome: só, idade: 25 }, em seguida, usar o comando de idade HDEL Key1; resultado é eliminado informações de atributo idade, isto é, apenas Key1: {nome: só} 6.Retornos .hlen chave correspondente à chave de hash no número de pares de valores chave . 7 .hexists campo de chave determina se existe uma chave especificada chave atributo campo correspondente para o hash

. 8 .hkeys retorna a tecla correspondente para a chave de hash conjunto de chaves, por exemplo, há key1: {nome: só, Idade: 25 }, em seguida, usar o resultado hkeys key1 nome do comando {,} Idade 9. .hvals hkeys com comando de tecla semelhantes, mas o hash comando retorna hvals correspondentes para a chave especificada o conjunto de valores . 9 retorna .hgetall chave toda a informação de chave correspondentes para a chave especificada 10 .hincrby campo incrementar a tecla correspondente para a chave especificada no valor hash correspondendo ao atributo especificado unidades de incremento de incremento, nota que somente os valores numéricos são único tipo Pode entrar em vigor, retornar os resultados incrementais

 4.Lista (lista)

   4.1 Introdução à lista

    As listas Redis são listas simples de strings, classificadas em ordem de inserção . Você pode adicionar um elemento à cabeça (esquerda) ou cauda (direita) da lista. Sua camada inferior é na verdade uma lista vinculada

    4.2 Recursos da lista

      1. O tipo de lista é usado para armazenar várias sequências ordenadas , cada sequência na lista se torna um elemento

        2. No redis , você pode inserir (pubsh) e pop (pop) nas duas extremidades da lista de filas , também pode obter a lista de elementos no intervalo especificado, obter os elementos na tabela sob o índice especificado, etc.

        3. A lista é uma estrutura de dados relativamente flexível, pode atuar como uma pilha e fila, a lista pode armazenar até 232-1 elementos (4294967295, cada lista pode armazenar mais de 4 bilhões) .

         4. Os elementos da lista são ordenados, o que significa que a lista de elementos em um certo ou certo intervalo pode ser obtida por índice subscrito. Os elementos da lista podem ser repetidos.

  4.3 Cenários de aplicação da Lista

     1. Fila de mensagensa combinação de comandos lpush + brpop do Redis pode obter uma fila de bloqueio.O cliente produtor usa lupsh para inserir elementos do lado esquerdo da lista.Locais clientes consumidores múltiplos usam o comando brpop para bloquear a "captura" no final da lista. Elementos, vários clientes garantem o balanceamento de carga e alta disponibilidade do consumidor

       2. Lista de artigos : cada usuário possui sua própria lista de artigos.Agora é necessário exibir a lista de artigos nas páginas.No momento, você pode considerar o uso da lista.A lista não é apenas solicitada, mas também suporta a obtenção de elementos de acordo com o intervalo do índice .

       3.  Uma lista atual : Lista o tipo de comando lpush e comando lrange permite recursos da lista mais recente , cada vez que você inserir um novo elemento à lista por ordem lpush, e em seguida, ler a lista mais recente de elementos de comando lrange, como ponto de círculo de amigos como Lista, lista de comentários.

      4.4Litit comandos comuns 

01 lpush: Adicione um ou mais elementos ao cabeçalho da lista e retorne o número de elementos na lista atual, usando a pilha. 
02 lrange: Retorna os elementos no intervalo especificado na coleção da lista, 0 subscrito representa o primeiro elemento, -1 representa o último elemento.
03 rpush: adicione um ou mais elementos ao final da lista e retorne o número de elementos na lista atual, usando uma fila.
04 linsert: insira o elemento antes ou depois do elemento da lista especificado
05 lset: defina o valor do subscrito do elemento especificado na lista de listas, o subscrito 0 representa o primeiro elemento, substituído por bear.
06 lrem: exclua os elementos com o mesmo n e valor da lista correspondente. "Lrem list 1 noe" significa excluir os elementos com o mesmo 1 e noe na lista. 07 LTRIM: dados da chave valor no intervalo especificado na reserva, há uma lista da lista conhecida de três elementos, e agora quer manter apenas os dois primeiros, o último reboque exibição foi removido 08 lpop: remover um elemento da cabeça da lista, o retorno eliminado Valor do elemento.
09 rpop: Exclua um elemento do final da lista e retorne o valor do elemento excluído.
10 rpoplpush: remova um elemento do final da primeira lista e adicione-o ao início da segunda lista.Remova um elemento do final da primeira lista.O elemento no final do mylist2 elephant, o comando rpop faz a segunda coisa Adicione um elemento ao cabeçalho da lista,
adicionando elementos de cabeçalho da lista de elefante, lpush importa comando seco
11. LindeX: Retorna os valores especificados elemento da lista subscritos, elementos o subscrito 0 Start
12 llen: Retorna o número de elementos na lista

   

 5. conjunto (conjunto)

   5.1 Introdução ao conjunto

   Redis Set é uma coleção não ordenada do tipo string. É implementado através do HashTable .

    5 Características .2Set

         1. set também é usado para salvar vários elementos de sequência, mas, diferentemente da lista, elementos duplicados não são permitidos no conjunto .

         2. Os elementos no conjunto não são ordenados e os elementos não podem ser obtidos por índice subscrito .

         3. Além de apoiar a adição, exclusão e modificação da coleção, o redis também suporta várias coleções para obter interseção, união e diferença e usar o tipo de coleção razoavelmente, o que pode resolver muitos problemas práticos no desenvolvimento real.

     5.3set cenários de aplicativos

        1. Coleção de amigos / seguidores / fãs / pessoas interessadas : O recurso exclusivo do tipo de conjunto o torna adequado para armazenar coleções de amigos / seguidores / fãs / pessoas interessadas.O número de elementos da coleção pode ser grande e todos são removidos a cada vez O custo não é pequeno.O tipo de conjunto fornece alguns comandos muito úteis para a operação direta desses conjuntos.Por exemplo, o comando a. Sinter pode obter amigos comuns dos dois usuários A e B. O comando sismember pode determinar se A é amigo de B. c. O comando scard pode obter o número de amigos d. Ao seguir, o comando move pode transferir B do conjunto de fãs de A para o conjunto de amigos de A

       2. Exibição aleatória : a área de exibição da página inicial do aplicativo é limitada, mas o conteúdo fixo nem sempre pode ser exibido.Uma maneira é determinar primeiro um lote de conteúdo que precisa ser exibido e obtê-lo aleatoriamente, como: Kugou music K song ring game day Há um total de 29 canções de sucesso e 5 programas aleatórios na página inicial; ontem, há 200 músicas de sucesso e 30 programas aleatórios na página inicial.

       3. Etiqueta (Tag ) : o tipo de coleção SET mais cenários de uso típicos , tais como Yi usuários mais interessados em entretenimento, esportes, e outro pode estar interessado nas notícias, esses interesses é o rótulo, com esses dados você pode obter o mesmo rótulo As pessoas e os hobbies comuns dos usuários, os rótulos de interesse usados ​​com frequência em nossos sites de blog e os usuários que têm os mesmos hobbies e prestam atenção a conteúdo semelhante usam um rótulo para mesclá-los.

       4. Função de amigo comum: preferências comuns ou pode ser estendida para aplicativos estendidos, como amigos de segundo grau.

       5. IP independente do site de estatística : Usando a exclusividade dos elementos na coleção de conjuntos, o IP independente do site pode ser rapidamente contado em tempo real.

     6. blacklist / whitelist único : o tráfego, muitas vezes por razões de segurança, ele requer a lista negra do usuário, lista negra ip, equipamentos de lista negra, tipo SET adequados listas negras de armazenamento de dados, comando sismember pode ser usado para determinar o usuário , Ip, se o dispositivo está na lista negra.

       7. Outras aplicações : gerar números aleatórios, como loteria 

     4.4 Comandos comuns do Set 

           

1 chave SADD membro1 [membro2] Adicione um ou mais membros à coleção
2 Chave SCARD Obter o número de membros da coleção 3 Chave SDIFF1 [chave2] Retorna a diferença de todas as coleções fornecidas
4 Chave de destino SDIFFSTORE1 [chave2] Retorna a coleção fornecida de todas as coleções Diferença definida e armazenada no destino
5 Tecla SINTER1 [tecla2] retorna a interseção de todos os conjuntos especificados
6 Tecla SINTERSTORE
de destino1 [tecla2] retorna a interseção de todos os conjuntos especificados e a armazena no destino 7 membro da chave SISMEMBER Determina se o elemento do membro é a chave definida Membro
8 A chave SMEMBERS retorna todos os membros da coleção
9 O membro de destino de origem SMOVE move o elemento membro da coleção de origem para a coleção de destino
10 A chave SPOP remove e retorna um elemento aleatório na coleção
11 SRANDMEMBER key [count] retorna um ou Vários números aleatórios
12 Chave SREM member1 [member2] remove um ou mais membros do conjunto
13 SUNION key1 [key2] retorna a união de todas as coleções fornecidas
14 SUNIONSTORE key
de destino1 [key2] a união de todas as coleções especificadas é armazenada na coleção de destino 15 SSCAN key cursor [MATCH pattern] [COUNT count] Iterar os elementos da coleção

 6. ZSet (conjunto classificado: conjunto ordenado)

     6.1 Introdução ao ZSet

        O redis zset, como set, também é uma coleção de elementos do tipo string e não permite membros duplicados . A diferença é que cada elemento está associado a uma pontuação de tipo duplo.

        O Redis usa a pontuação para classificar os membros do conjunto de pequenos para grandes. Os membros do zset são únicos, mas a pontuação pode ser repetida .

       Definir recursos

          O ZSet mantém a característica de que o conjunto não pode ter membros duplicados , mas a diferença é que os elementos no conjunto ordenado podem ser classificados , mas a diferença entre ele e o índice do índice usado como uma lista de classificação é que ele define um para cada elemento. Pontuação, como base para classificação;

        6.3 Cenário do aplicativo ZSet

           1.  Classificações : coleção ordenada de cenários de uso clássico , como o ranking diário de vendas de celulares da JD.com, a lista mensal de vendas da JD.com e novas classificações de produtos por tempo . Os sites de vídeo precisam fazer classificações para vídeos enviados por usuários. manutenção da ordem pode ser muitas: de acordo com o tempo, de acordo com a quantidade de jogadores, de acordo com o número obtido por Chan et .

         Definir comandos comuns   

1. ZADD key score1 member1 [score2 member2] Adicione um ou mais membros ao conjunto ordenado ou atualize a pontuação do membro existente.
2 Tecla ZCARD Obtenha o número de membros do conjunto ordenado.
3 ZCOUNT key min cálculo máximo especificado no conjunto ordenado. O número de membros da pontuação do intervalo
4 membro de incremento de chave ZINCRBY No conjunto ordenado, adicione o incremento à pontuação do membro especificado.
5 teclas numkeys de destino ZINTERSTORE key [key ...] Calcule a interseção de um ou mais conjuntos ordenados e O conjunto de resultados é armazenado na nova chave do conjunto ordenado
6 Chave ZLEXCOUNT min max Calcula o número de membros no intervalo de dicionário especificado no conjunto ordenado
7 Parada de início da tecla ZRANGE [WITHSCORES] retorna os membros no intervalo especificado do conjunto ordenado através do intervalo de índice
8 ZRANGEBYLEX key min max [LIMIT offset count] retorna os membros do conjunto ordenado através do intervalo do dicionário
9 ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] retorna os membros dentro do intervalo especificado do conjunto ordenado pela pontuação
10 ZRANK key member retorna o membro especificado do conjunto ordenado Índice
11 O membro da chave ZREM [member ...] remove um ou mais membros do conjunto ordenado
12 chave ZREMRANGEBYLEX min max remove todos os membros do intervalo de dicionário especificado no
conjunto ordenado
13 A parada de início da chave 13 ZREMRANGEBYRANK remove o conjunto ordenado 14 Tecla ZREMRANGEBYSCORE min max remove
todos os membros do intervalo de pontuação especificado no conjunto ordenado 15 Parada inicial da tecla ZREVRANGE [WITHSCORES] retorna os membros no intervalo especificado no conjunto ordenado, por índice, pontuação De alto para baixo
16 max ZREVRANGEBYSCORE key max [WITHSCORES] retorna os membros no intervalo de pontuação especificado no conjunto ordenado, as pontuações são classificadas de alta para baixa
17 O membro-chave ZREVRANK retorna a classificação dos membros especificados no conjunto ordenado e os membros do conjunto ordenados diminuem de acordo com a pontuação (
Grande para
pequeno) Classificar 18 O membro da chave ZSCORE retorna o conjunto ordenado, o valor da pontuação do membro 19 tecla ZUNIONSTORE destino numkeys key [chave ...] Calcula a união do conjunto ou conjuntos ordenados fornecidos e o armazena no novo a chave em
20 de chave ZScan o Cursor [padrão de correspondência] [COUNT COUNT] iterações conjunto ordenado de elementos (incluindo elementos e membro do elemental )

Acho que você gosta

Origin www.cnblogs.com/gzxg/p/12683603.html
Recomendado
Clasificación