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>