Redis comumente usados cinco tipos de dados (detalhados) estão sendo atualizados

Uma chave

1, Veja todas as chaves na biblioteca atual:

key *

Digite alguns valores antes de testar

 set k1 mary
 set k2 jack
 set k3 frank
 

  keys *      

70260e3cea044357a186ab22823e1cce.png

 2, determine se uma chave está incluída

exists key

d42a3deaa1804f11a2776ef6fa1709bc.png

3, verifique o tipo da chave

type key

 24cf98bf9b7847c1b32e6bdf3ed558a3.png

 4, exclua os dados da chave especificada

del key      删除指定key的数据
unlink key   根据value选择非阻塞删除 

65768107a6e84f4999c4796b82e24aae.png

539738b77aa0434c8219f19ad6c574ec.png

O efeito é o mesmo, mas a chave del é excluída diretamente e a chave de desvinculação é uma exclusão sem bloqueio, que não será excluída diretamente. Apenas as chaves são excluídas dos metadados do keyspace e a exclusão real será executada de forma assíncrona posteriormente .

5. Defina o tempo de expiração da chave

expire key 10 指定key10秒删除

 46668c7cbbee4678a798c967ef763464.png

 6. Verifique quantos segundos a chave irá expirar

-1 significa que nunca expira, -2 significa expirado

35a7691d0da042dfa50d778a2732b8a5.png

7, alternar banco de dados

O Redis tem 16 bancos de dados por padrão, 0-15 bancos de dados e a seleção padrão é 0 banco de dados

 c3722bd58637425ebe5351452adcced2.png

8, verifique quantas chaves a biblioteca atual possui

Como nossa operação anterior excluiu a chave, agora adicione mais algumas

8c998d7f891f44b5b298a29e5f9eca03.png

Ver o número de chaves na biblioteca atual 

 ffa5042669914eeaae850c30aebf1b51.png

 9. Limpe a biblioteca atual

flushdb

9d6cf5a84fa742be8000ead5ec1bef33.png

10, mate todas as bibliotecas

flushall

e58286957d784b5888792fb4c91b7c58.png

Dois, tipo de string Redis (String)

1. Introdução

String é o tipo mais básico de Redis, você pode entendê-lo exatamente como o mesmo tipo do Memcached, uma chave corresponde a um valor.

O tipo String é binário seguro . Significa que a string Redis pode conter qualquer dado. Como imagens jpg ou objetos serializados.

O tipo String é o tipo de dados mais básico do Redis, e um valor de string no Redis pode ser de até 512M.

2. Comandos comuns

1. Adicione pares chave-valor

set <key> <value>

 2, obter o valor

get key

3. Acrescentar caracteres 

append <key> <value>

 4, obter o comprimento do valor

strlen key

5, apenas defina o valor quando a chave não existir

setnx key

6, +1, -1 o valor digital armazenado na chave

incr <key> +1
decr <key> -1

Válido apenas para valores numéricos, incr, se estiver vazio, o novo valor é 1; decr, se estiver vazio, o novo valor é -1

 7, o valor digital armazenado na tecla + - especifica o tamanho do passo

incrby key 步长
decrby key 步长

atomicidade 

 A chamada operação atômica refere-se à operação que não será interrompida pelo mecanismo de escalonamento de threads; 

Uma vez iniciada esta operação, ela será executada até o final sem nenhuma troca de contexto (mudança para outro thread) no meio.

 (1) Em um único thread, as operações que podem ser concluídas em uma única instrução podem ser consideradas "operações atômicas" porque as interrupções só podem ocorrer entre as instruções.

(2) Em multithreading, as operações que não podem ser interrompidas por outros processos (threads) são chamadas de operações atômicas.

A atomicidade do comando único do Redis é derivada principalmente do thread único do Redis.

8, mset, mget, set, pega várias chaves e valores

mset k1 v1 k2 v2 k3 v3
mget k1 k2 k3

9, msetnx define a chave que não existe, se a chave existir, a configuração não foi bem-sucedida 

10, getrange <key> start end intercepta a string da chave do início ao fim

 11, setrange <chave> valor da posição inicial

12, valor do tempo de expiração da chave setex, defina o tempo de expiração ao definir o valor da chave

13, getset kv substitui o valor antigo pelo novo valor

3, estrutura de dados

A estrutura de dados de String é Simple Dynamic String (SDS para abreviar). É uma string modificável, sua estrutura interna é similar a ArrayList do Java, utiliza espaço redundante pré-alocado para reduzir a alocação frequente de memória.

Conforme mostrado na figura, a capacidade realmente alocada internamente para a string atual geralmente é maior que o comprimento real da string len. Quando o comprimento da string for menor que 1M, a expansão irá dobrar o espaço existente.Se exceder 1M, a expansão irá expandir o espaço apenas em 1M de cada vez. Deve-se notar que o comprimento máximo da corda é 512M.

Três, lista Redis (lista)

1. Introdução

valor múltiplo de chave única

A lista redis é uma lista simples de strings, classificadas em ordem de inserção, e um elemento pode ser adicionado à cabeça (à esquerda) ou à cauda (à direita) da lista.

Sua camada inferior é, na verdade, uma lista duplamente encadeada , que tem alto desempenho em ambas as extremidades da operação, e o desempenho dos nós no meio por meio de operações de subscrito de índice será ruim.

 2. Comandos comuns

1, lpush/rpush <tecla> <v1><v2>.... Insira um ou mais valores da esquerda/direita.

Inserir à esquerda

inserir direito

 Nota: O processo de inserção é como mostrado na figura abaixo.

Inserir à esquerda:

a
b a
c b a
d c b a

Insira à direita:

a
a

b

a b c
a b c d

2, lpop/rpop <tecla> mostra um valor da esquerda/direita. O valor está na chave e o valor está na chave .

3. rpoplpush <k1><k2> cospe um valor à direita da lista k1 e o insere à esquerda da lista k2

Vamos pegar a inserção à esquerda como exemplo:

 4, lrange key start end Obtém elementos de acordo com o índice subscrito (da esquerda para a direita)

Ligeiramente, mostrado acima

Nota: lrange chave 0 -1 pode obter todos os valores

5, índice chave lindex Obtém elementos de acordo com o índice subscrito (da esquerda para a direita)

6, tecla llen para obter o comprimento da lista

7, chave linsert antes do valor novo valor Inserir novo valor após o valor para inserir o valor

8, chave lrem n valor exclui valores n da esquerda (da esquerda para a direita)

9. lset key index value Altere o valor da chave da lista subscrita como índice para valor

3, estrutura de dados

A estrutura de dados subjacente de List é a lista encadeada rápida quickList

Em primeiro lugar, um armazenamento contínuo de memória será usado quando houver menos elementos na lista.Essa estrutura é ziplist, que é uma lista comprimida. Ele armazena todos os elementos próximos uns dos outros e aloca um pedaço contínuo de memória.

Quando a quantidade de dados for grande, ela será alterada para lista rápida.

Como o espaço de ponteiro adicional exigido pela lista encadeada comum é muito grande, ela desperdiçará espaço. Por exemplo, apenas dados do tipo int são armazenados nesta lista e dois ponteiros adicionais anterior e seguinte são necessários na estrutura.

Redis combina lista encadeada e zipList para formar quickList. Ou seja, vários zipLists são usados ​​em série usando ponteiros bidirecionais. Isso não apenas satisfaz o desempenho rápido de inserção e exclusão, mas também não causa muita redundância de espaço.

Quatro, coleção Redis (conjunto)

1. Introdução

A função fornecida pelo conjunto Redis é semelhante à da lista. É uma função de lista. O recurso especial é que o conjunto pode ser retomado automaticamente . Quando você precisa armazenar uma lista de dados e não deseja dados duplicados, o conjunto é uma boa escolha.

Atualizando.......

Acho que você gosta

Origin blog.csdn.net/Yajyaj123/article/details/126918559
Recomendado
Clasificación