1. Tipo de dados String:
Operações comuns para strings:
SET key value
Armazenar pares de valores-chave, SET substitui valores antigos, independentemente do tipoMSET key value [key value ...]
Pares de valores-chave da cadeia de armazenamento em loteSETNX key value
Armazene um par de valores-chave inexistente, se a chave existir, não faça nadaGET key
Obtenha o valor correspondente à chave de acordo com a chaveMGET key [key ...]
Obter pares de valores-chave de sequência em lotesDEL key
Exclua o par de valores-chave correspondente à chaveEXPIRE key seconds
Defina o tempo válido para o valor da chave fornecido
Adição e subtração atômica
INCR key
Adicione 1 ao número correspondente ao valor da chaveDECR key
Diminua o valor armazenado pela chave em 1INCRBY key increment
Adicione incremento à matriz de armazenamento de chavesDECRBY key increment
Subtrair o incremento da matriz armazenada pela chave
Cenário de aplicação:
-
cache-valor único:
SET key value
,GET key
-
Objeto de cache:
SET user:1 value(json字符串)
;
depósito:MSET user:1:name zhangsan user:1:age 10
Tomar:MGET user:1:name user:1:age
melhor do que o formato JSON para facilitar a manipulação único atributo, que um melhor desempenho, a escolha idealHASH
-
Bloqueios distribuídos:
SETNX product:10001 true
// Envie 1 para indicar que o bloqueio foi bem-sucedido, não o utilize se houver desvantagens
SETNX product:10001 true
// Envie 0 para indicar que o bloqueio falhou
DEL product:10001
// Libere o bloqueio
SET product:10001 true ex 10 nx
// Impeça que o programa seja encerrado inesperadamente, resultando em um impasse -
O uso de
estatísticas de leitura de contador no Redis:INCR article:readcount:{文章Id}
Estatísticas de leitura de artigosGET article:readcount:{文章Id}
-
O ID exclusivo do sistema distribuído gera
INCRBY orderId 1000
redis para gerar o número de série e melhorar o desempenho.
Estrutura 2.HASH
Operações comuns
HSET key field value
// Armazena o valor da chave de uma chave da tabela de hashHSETNX key field value
// Armazena o valor da chave de uma chave de tabela de hash inexistenteHMSET key field value [field value ...]
Armazenar vários pares de valores-chave em uma chave de tabela de hashHGET key field
Obter o valor da chave de um campo em uma tabela de hashHMGET key field [field ...]
Obter os valores-chave de vários campos na chave da tabela de hashHDEL key field [field ...]
Exclua o valor da chave do campo na chave da tabela de hashHLEN key
O número de campos na chave da tabela de hashHGETALL key
Retornar todos os pares de valores-chave na chave da tabela de hashHINCRBY key field increment
Adicione incremento incremental ao valor do campo campo na chave da tabela de hash
Cenário de aplicação
-
Armazenamento de objetos
HSET user:10001 name zhangsan age 10
// Definir propriedades do objeto
HGET user:10001 name age
// Obter informações sobre atributos -
Cenário do carrinho de compras
de comércio eletrônico Estrutura de dados do carrinho de compras de comércio eletrônico:- Use o ID do usuário como chave
- O ID do produto é um campo
- O número de produtos é valor
Operação do carrinho de compras:
- Adicionar produto->
HSET cart:1001 10088 1
- Aumente o número->
HINCRBY cart:1001 10088 1
- Número total de produtos->
HLEN cart:1001
- Excluir produto
HDEL cart:1001 10088
- Obter todos os itens no carrinho de compras->
HGETALL cart:1001
Estrutura de dados 3.List
Comandos comuns
LPUSH key value [value ...]
Inserir um ou mais valores no cabeçalho da lista de chaves (mais à esquerda)RPUSH key value [value ...]
Inserir um ou mais valores no cabeçalho da lista de chaves (extrema direita)LPOP key
Remova e retorne o elemento principal da lista de chavesRPOP key
Remova e retorne o elemento final da chaveLRANGE key start stop
Retorna o elemento do intervalo especificado na chave, o deslocamento do intervalo é especificado por start e stopBLPOP key [key ...] timeout
Um elemento aparece da cabeça da chave.Se não houver um elemento na chave, ele irá bloquear e aguardar, bloquear o tempo limite, se o tempo limite for 0, significa bloquear o tempo todoBRPOP key [key ...] timeout
Um elemento aparece no final da tabela de chaves; se não houver nenhum elemento na chave, ele bloqueará a espera, bloqueará o tempo limite; se o tempo limite for 0, ele sempre bloqueará
Cenário de aplicação
-
Estruturas de dados comuns
- Pilha = LPUSH + LPOP-> FILO avançado
- Fila = LPUSH + RPOP-> FIFO, primeiro a entrar, primeiro a sair
- MQ de bloqueio (fila de bloqueio) = LPUSH + BRPOP
-
Fluxo de mensagens da conta pública Weibo e WeChat
O exemplo se concentra no uso de pneus sobressalentes para números públicos WeChat e do Mac Talk em Redis:
- O Mac Talk divulgou a mensagem ID 10018->
LPUSH msg:{订阅人Id} 10018
- O pneu sobressalente disse que o carro lançou a mensagem ID 10019->
LPUSH msg:{订阅人Id} 10019
- Veja as últimas notícias inscritas, como 6->
LRANGE msg:{订阅人Id} 0 5
Estrutura 4.SET
Comandos comuns
SADD key member [member ...]
Coloque um ou mais membros na chave, ignore se o elemento existeSREM key member [member ...]
Remova um ou mais membros da chave de coleçãoSMEMBERS key
Retornar todos os elementos na chave de coleçãoSCARD key
O número de elementos na chave de coleçãoSISMEMBER key member
Determinar se o membro é um elemento na chaveSRANDMEMBER key [count]
Contar elementos de contagem aleatoriamente da chave, os elementos não são excluídos da chaveSPOP key [count]
Pegue aleatoriamente os elementos de contagem da chave e exclua os elementos da chaveSINTER key [key ...]
Operação de interseçãoSINTERSTORE destination key [key ...]
Armazene o resultado da interseção no novo destino de coleçãoSUNION key [key ...]
Operação da UniãoSUNIONSTORE destination key [key ...]
Salve o resultado da união no novo destino
-SDIFF key [key ...]
operação de diferença,
Cenário de aplicação
- Modelo de loteria
O uso de loterias participantes no Redis no exemplo:- Clique para participar do sorteio e participar da coleção->
SADD key {userId}
- Veja todos os usuários participantes do sorteio->
SMEMBERS key
- Vencedores do sorteio->
SRANDMEMBER key [count]/SPOP key [count]
- Clique para participar do sorteio e participar da coleção->
- Curta, siga e colecione no Weibo e WeChat
O uso do modelo similar no Redis no exemplo:
-
Curtir->
SADD like:{消息id} {用户id}
-
Ao contrário->
SREM like:{消息id} {用户id}
-
Verifique se o usuário gosta->
SISMEMBER like:{消息id} {用户id}
-
Obtenha uma lista de usuários que gostaram->
SMEMBERS like:{消息id}
-
Obter o número de curtidas->
SCARD like:{消息id}
-
WeChat Weibo segue o modelo:
Exemplo WeChat segue o modelo usado no Redis:- Pessoas que Zhang San segue->
zhangsanSET->{lisi,sima,luban}
- Pessoas que Li Si segue->
lisiSET->{zhangsan,sima,luban,qiaofeng}
- Pessoas que Wang Wu segue->
wangwuSET->{zhangsan,lisi,luban,qiaofeng,duanyu}
- Pessoas com quem Zhang San e Li Si estão preocupadas->
SINTER zhangdanSET lisiSET
- Joe Smith também preocupados com a do povo atenção Doe -> Lista zhangsanSET para cada membro da página de seguimento ao juiz
SISMEMBER simaSET lisi
,SISMEMBER lubanSET lisi
- Pessoas que Zhang San pode conhecer->
SDIFF lisiSET zhangsanSET
- Pessoas que Zhang San segue->
-
Triagem de mercadorias da plataforma de comércio eletrônico de operação coletiva: o uso das
condições de triagem de mercadorias em redis:SADD brand:HUAWEI p30
SADD brand:xiaomi mi-6X
SADD brand:IPhone iphone8
SADD os:android p30 mi-6X
SADD cpu:brand:intel p30 mi-6X
SADD ram:8G p30 mi-6X iphone8
SINTER os:android cpu:brand:intel ram:8G
->{p30 mi-6X}
Estrutura de dados SortedSet
Comandos comuns
ZADD key score member [[score member] [score member] ...]
Adicione elementos com pontuações à chave de combinação ordenadaZREM key member [member ...]
Remover chave da coleção solicitadaZSCORE key member
Retorna o valor da pontuação dos membros na chave ordenadaZINCRBY key increment member
Adicione o incremento à pontuação do elemento membro na chave do conjunto ordenadoZCARD key
Retorna o número de elementos da chave ordenadaZRANGE key start stop [WITHSCORES]
Obter elementos da chave de conjunto ordenada do início do subscrito para parar o subscrito em ordem positivaZREVRANGE key start stop [WITHSCORES]
Obtenha os elementos da chave do conjunto ordenado do início subscrito para parar o subscrito na ordem inversaZUNIONSTORE destination numkeys key [key ...]
Cálculo da UniãoZUNIONSTORE destination numkeys key [key ...]
Cálculo de interseção
Cenário de aplicação
- Cena do placar
O uso do placar do Weibo em Redis:- Clique em Notícias->
ZINCRBY hotNews:20190819 1 守护香港
- Mostrar os dez melhores do dia->
ZREVRANGE hotNews:20190819 0 10 WITHSCORES
- Lista de pesquisa de sete dias->
ZUNIONSTORE hotNews:20190813-20190819 7 hotNews:20190813 hotNews:20190814 hotNews:20190815....hotNews:20190819
- Mostre o top 10 no dia 7->
ZREVRANGE hotNews:20190813-20190819 0 10 WITHSCORES
- Clique em Notícias->