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 *
2, determine se uma chave está incluída
exists key
3, verifique o tipo da chave
type key
4, exclua os dados da chave especificada
del key 删除指定key的数据
unlink key 根据value选择非阻塞删除
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秒删除
6. Verifique quantos segundos a chave irá expirar
-1 significa que nunca expira, -2 significa expirado
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
8, verifique quantas chaves a biblioteca atual possui
Como nossa operação anterior excluiu a chave, agora adicione mais algumas
Ver o número de chaves na biblioteca atual
9. Limpe a biblioteca atual
flushdb
10, mate todas as bibliotecas
flushall
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.......