Instalação do Redis, inicialização, uso básico de 5 estruturas de dados

1. Instale e inicie o redis

1. Abra o diretório
mkdir packages
cd packages / onde você precisa baixar o redis
2. Baixe o pacote de instalação redis
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
ls -lrt
3. Descompacte o pacote de instalação
tar xzfv redis-5.0.3.tar.gz 
cd redis-5.0.3 /
ls -lrt
4. Instale
make
pwd
ls -lrt
5. Inicie o servidor redis
src / redis-server redis.conf &
6. Verifique se o serviço foi iniciado it
 PS -ef | grep redis
7. the start redis client
SCR / redis-CLI
8. o exemplo simples de uso

[allen@localhost redis-5.0.3]$ src/redis-cli
127.0.0.1:6379> set allen "will win 100 million yuan this year"
OK
127.0.0.1:6379> get allen
"will win 100 million yuan this year"
127.0.0.1:6379> 

Como visualizar documentos do site oficial:

No lado do cliente, como obter documentação de ajuda:

127.0.0.1:6379> help @set

  SADD key member [member ...]
  summary: Add one or more members to a set
  since: 1.0.0

 

Introdução ao comando (com base na função)

1. Cache de valor único.

2. Cache de objeto

Nome Saldo
Allen 200000
Conta 4000
Carlyn 30000
David 70000

método um:

 Definir usuário: 1 valor (dados de formato Json)

Caminho dois:

 usuário mset: 1: Nome usuário Allen: 1: Saldo 200000

127.0.0.1:6379> mset user:1:Name Allen user:1:Balance 200000
OK
127.0.0.1:6379> mset user:2:Name Bill user:2:Balance 40000
OK
127.0.0.1:6379> mget user:1:Name
1) "Allen"
127.0.0.1:6379> mget user:1:Balance
1) "200000"

3. setNX implementa bloqueios distribuídos

 NX - Defina a chave apenas se ela ainda não existir.

O retorno 1 significa que a configuração foi bem-sucedida, o retorno 0 significa que a configuração falhou, o bloqueio é liberado quando a execução é concluída e a chave é excluída

127.0.0.1:6379> SETNX product:1001 true
(integer) 1
127.0.0.1:6379> SETNX product:1001 true
(integer) 0
127.0.0.1:6379> del product:1001
(integer) 1

4. Use incr para realizar a função de leitura 

127.0.0.1:6379> incr artical:readCount:1001
(integer) 1
127.0.0.1:6379> incr artical:readCount:1001
(integer) 2
127.0.0.1:6379> incr artical:readCount:1001
(integer) 3
127.0.0.1:6379> 

5. Operações comuns de hash do Redis

A estrutura de dados hash do Redis realiza o armazenamento de objetos, Hmset

127.0.0.1:6379> hmset user 1001:name Allen 1001:balence 1000000
OK
127.0.0.1:6379> hmset user 1002:name Sky 1002:balence 10000
OK
127.0.0.1:6379> hgetall user
1) "1001:name"
2) "Allen"
3) "1001:balence"
4) "1000000"
5) "1002:name"
6) "Sky"
7) "1002:balence"
8) "10000"
127.0.0.1:6379> hmget user 1001:name
1) "Allen"
127.0.0.1:6379> 

5.1. A estrutura de dados hash do Redis realiza o armazenamento de objetos, Hset

Hash é usado para aumentar o cenário do carrinho de compras:

1) Um ID de usuário é o carrinho de chaves: 1001

2) Use o id do produto como campo-8808

3) Considere a quantidade de bens como valor-1

127.0.0.1:6379> hset cart:1001 8808 1
(integer) 1
127.0.0.1:6379> hincrby cart:1001 8808 1
(integer) 2
127.0.0.1:6379> hlen cart:1001
(integer) 1
127.0.0.1:6379> hget cart:1001 8808
"2"
127.0.0.1:6379> hgetall cart:1001
1) "8808"
2) "2"
127.0.0.1:6379> 

6. Liste a estrutura de dados para obter a estrutura de dados

6.1 Implementação da estrutura de dados da pilha,

Pilha (栈 FILO) = LPUSH + LPOP

127.0.0.1:6379> LPUSH menu "Pai HuangGua"
(integer) 1
127.0.0.1:6379> LPUSH menu "Shao Zhuti"
(integer) 2
127.0.0.1:6379> LPUSH menu "Zheng Xiongzhang"
(integer) 3
127.0.0.1:6379> LPOP menu
"Zheng Xiongzhang"
127.0.0.1:6379> LPOP menu
"Shao Zhuti"
127.0.0.1:6379> 

6.2 Implementação da estrutura de dados da fila:

Fila (Fila FIFO) = LPUSH + RPOP

127.0.0.1:6379> LPUSH QueueMenu "Pai HuangGua"
(integer) 1
127.0.0.1:6379> LPUSH QueueMenu "Shao ZhuTi"
(integer) 2
127.0.0.1:6379> LPUSH QueueMenu "Zhen XiongZhang"
(integer) 3
127.0.0.1:6379> RPOP QueueMenu
"Pai HuangGua"
127.0.0.1:6379> RPOP QueueMenu
"Shao ZhuTi"
127.0.0.1:6379> 

6.2 Implementação da Estrutura de Dados da Fila de Bloqueio

Fila de bloqueio (队列 FIFO) = LPUSH + BRPOP

127.0.0.1:6379> LPUSH QueueMenu "Pai HuangGua"
(integer) 1
127.0.0.1:6379> LPUSH QueueMenu "Shao ZhuTi"
(integer) 2
127.0.0.1:6379> BRPOP QueueMenu 5
1) "QueueMenu"
2) "Pai HuangGua"
127.0.0.1:6379> BRPOP QueueMenu 5
1) "QueueMenu"
2) "Shao ZhuTi"
127.0.0.1:6379> BRPOP QueueMenu 5
(nil)
(5.10s)
127.0.0.1:6379> 

6.3 Uso do comando LRANGE

127.0.0.1:6379> LPUSH QueueMenu "Zhen XiongZhang"
(integer) 1
127.0.0.1:6379> LPUSH QueueMenu "Shao ZhuTi"
(integer) 2
127.0.0.1:6379> LPUSH QueueMenu "Pai HuangGua"
(integer) 3
127.0.0.1:6379> LPUSH QueueMenu "Chao HuaSheng"
(integer) 4
127.0.0.1:6379> LPUSH QueueMenu "Kao Ya"
(integer) 5
127.0.0.1:6379> LRange QueueMenu 2 4
1) "Pai HuangGua"
2) "Shao ZhuTi"
3) "Zhen XiongZhang"
127.0.0.1:6379> 

7. Definir cenários de aplicação de estrutura de dados

7.1. Loteria, sempre que o mesmo funcionário pode ganhar várias vezes

127.0.0.1:6379> sadd choujinag Allen
(integer) 1
127.0.0.1:6379> sadd choujinag Bill
(integer) 1
127.0.0.1:6379> sadd choujinag Fiona
(integer) 1
127.0.0.1:6379> sadd choujinag Wesley
(integer) 1
127.0.0.1:6379> sadd choujinag Alisa
(integer) 1
127.0.0.1:6379> sadd choujinag Mocha
(integer) 1
127.0.0.1:6379> srandmember choujinag 2
1) "Fiona"
2) "Bill"
127.0.0.1:6379> SMEMBERS choujinag
1) "Wesley"
2) "Mocha"
3) "Alisa"
4) "Fiona"
5) "Bill"
6) "Allen"

7.2 Loteria, o mesmo funcionário só pode ganhar uma vez

127.0.0.1:6379> SPOP choujinag 2
1) "Wesley"
2) "Fiona"
127.0.0.1:6379> SMEMBERS choujinag
1) "Mocha"
2) "Alisa"
3) "Bill"
4) "Allen"
127.0.0.1:6379> 

7.3 Set implementa a função like

Curtir -> Cancelar curtir -> Verificar se deseja curtir -> Ver a lista de curtidas -> Ver o número de curtidas

127.0.0.1:6379> sadd like:Message1001 Allen
(integer) 1
127.0.0.1:6379> sadd like:Message1001 Bill
(integer) 1
127.0.0.1:6379> sadd like:Message1001 Fiona
(integer) 1
127.0.0.1:6379> sadd like:Message1001 Mocha
(integer) 1
127.0.0.1:6379> srem like:Message1001 Fiona
(integer) 1
127.0.0.1:6379> SISMEMBER like:Message1001 Bill
(integer) 1
127.0.0.1:6379> SISMEMBER like:Message1001 Fiona
(integer) 0
127.0.0.1:6379> SMEMBERS like:Message1001
1) "Bill"
2) "Allen"
3) "Mocha"
127.0.0.1:6379> scard like:Message1001
(integer) 3
127.0.0.1:6379> 

7.4 Definir operações

União - SINTER

Ou definir - SUNION

Conjunto de diferenças --SDIFF-Subtrai todos os conjuntos subsequentes do primeiro conjunto

127.0.0.1:6379> sadd fruit1 apple banana
(integer) 2 
127.0.0.1:6379> sadd fruit2 pear berry grape apple orange
(integer) 2
127.0.0.1:6379> sadd fruit3 apple mongo
(integer) 2
127.0.0.1:6379> SINTER fruit1 fruit2
1) "apple"
127.0.0.1:6379> SUNION fruit3 fruit1
1) "banana"
2) "apple"
3) "mongo"
127.0.0.1:6379> sdiff fruit1 fruit2
1) "banana"
127.0.0.1:6379> 

Soluções de filtragem em sites de comércio eletrônico:

8. Conjunto ordenado zset

comando de operação zset


Uso simples do comando acima:

127.0.0.1:6379> zadd MathScore 90 allen 80 bill 65 mocha 85 fiona
(integer) 4
127.0.0.1:6379> ZREM MathScore mocha
(integer) 1
127.0.0.1:6379> zscore MathScore mocha
(nil)
127.0.0.1:6379> zscore MathScore fiona
"85"
127.0.0.1:6379> zcard MathScore 
(integer) 3
127.0.0.1:6379> ZRANGE MathScore 1 2
1) "fiona"
2) "allen"
127.0.0.1:6379> ZRANGE MathScore 1 2 withscores
1) "fiona"
2) "85"
3) "allen"
4) "90"
127.0.0.1:6379> ZREVRANGE MathScore 0 2
1) "allen"
2) "fiona"
3) "bill"
127.0.0.1:6379> zadd EnglishScore 100 allen 80 sky 70 kevin
(integer) 3
127.0.0.1:6379> ZINCRBY MatchScore 1 fiona
"86"
127.0.0.1:6379> ZINCRBY MatchScore 1 fiona
"87"
127.0.0.1:6379> ZINCRBY MatchScore 1 fiona
"88"
127.0.0.1:6379> ZUNIONSTORE Class061Score 2 MatchScore EnglishScore
(integer) 5
127.0.0.1:6379> ZREVRANGE Class061Score 0 4 withscores
 1) "allen"
 2) "190"
 3) "fiona"
 4) "88"
 5) "sky"
 6) "80"
 7) "bill"
 8) "80"
 9) "kevin"
10) "70"

9. Outros comandos avançados, liste todas as chaves

chaves *

chaves allen

127.0.0.1:6379> keys *
 1) "menu"
 2) "user:1:Balance"
 3) "user:1:Name"
 4) "QueueMenu"
 5) "fruit1"
 6) "choujinag"
 7) "EnglishScore"
 8) "artical:readCount:1001"
 9) "fruit3"
10) "Class061Score"
11) "user:2:Balance"
12) "cart:1001"
13) "like:Message1001"
14) "MatchScore"
15) "fruit2"
16) "user"
17) "user:2:Name"
18) "allen"
127.0.0.1:6379> keys allen
1) "allen"

Use as teclas para verificar todo o redis, o que causará bloqueio

10. Traversal progressivo, varrendo até que o valor retornado seja o cursor 0.

O cursor aqui é o valor da tabela do balde no mapa hash.

scan 0 corresponde ao usuário * contagem 3

127.0.0.1:6379> keys user*
1) "user:1:Balance"
2) "user:1:Name"
3) "user1"
4) "user:2:Balance"
5) "user3"
6) "user2"
7) "user"
8) "user:2:Name"
127.0.0.1:6379> scan 0 match user* count 3
1) "20"
2) 1) "user:1:Name"
127.0.0.1:6379> scan 20 match user* count 3
1) "28"
2) 1) "user:2:Balance"
127.0.0.1:6379> scan 28 match user* count 3
1) "30"
2) 1) "user1"
127.0.0.1:6379> scan 30 match user* count 3
1) "13"
2) 1) "user"
   2) "user:2:Name"
   3) "user3"
127.0.0.1:6379> scan 13 match user* count 3
1) "19"
2) 1) "user:1:Balance"
127.0.0.1:6379> scan 19 match user* count 3
1) "31"
2) 1) "user2"
127.0.0.1:6379> scan 31 match user* count 3
1) "0"
2) (empty list or set)
127.0.0.1:6379> 

 

Acho que você gosta

Origin blog.csdn.net/pengweismile/article/details/112093565
Recomendado
Clasificación