Condivisione della tecnologia

Configurazione e ottimizzazione di Redis NoSQL

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Introduzione di base e confronto del database Redis

Redis (RemoteDictionaryServer, tipo dizionario remoto) è un database NoSQL open source scritto in linguaggio C. Redis funziona in base alla memoria e supporta la persistenza. Adotta il formato di archiviazione chiave-valore (coppia chiave-valore) ed è una parte indispensabile dell'attuale architettura distribuita.

1. Database non relazionale

NoSQL (NoSQL= Not Only SQL), che significa "non solo SQL", è il termine generale per i database non relazionali. I database NoSQL tradizionali includono Redis, MongBD, Hbase, CouhDB, ecc. I database non relazionali di cui sopra sono completamente diversi nei metodi di archiviazione, nelle strutture di archiviazione e negli scenari di utilizzo. Quindi pensiamo che sia una raccolta di database non relazionali, non un termine generale come i database relazionali. In altre parole, i database diversi dai database relazionali tradizionali possono essere considerati non relazionali. Il database NOSQL è considerato il prodotto database di prossima generazione grazie ai suoi vantaggi di espansione non relazionale, distribuita, open source e orizzontale.

2. Base di dati relazionale

Un database relazionale è un database strutturato basato su un modello relazionale ed è generalmente orientato ai record. Elabora i dati nei database con l'aiuto di concetti e metodi matematici come l'algebra degli insiemi. Il modello relazionale si riferisce al modello di tabella bidimensionale, quindi un database relazionale è un'organizzazione di dati composta da tabelle bidimensionali e dalle relazioni tra di loro. Nel mondo reale, varie entità e varie relazioni tra entità possono essere rappresentate da modelli relazionali. L'istruzione SQL (Standard Data Query Language) è un linguaggio basato su un database relazionale e viene utilizzato per recuperare e gestire i dati in un database relazionale.

3. Background dei database non relazionali

Con l'avvento dei siti Web Web 2.0, i database relazionali vengono esposti quando si tratta di siti Web Web 2.0, in particolare siti Web Web 2.0 puramente dinamici con enormi quantità di dati e alta concorrenza SNS (servizi di social network, ovvero servizi di social network). difficili da risolvere, come il problema del tre alto.

(1) Prestazioni elevate: requisiti elevati di lettura e scrittura simultanea per il database

I siti Web Web2.0 genereranno pagine dinamiche e forniranno informazioni dinamiche in tempo reale in base alle informazioni personalizzate dell'utente, pertanto non è possibile utilizzare la tecnologia statica delle pagine dinamiche. Pertanto, il carico simultaneo del database è molto elevato, raggiungendo generalmente più di 10.000 richieste/s di lettura e scrittura. Il database relazionale riesce ancora a malapena a supportare decine di migliaia di richieste di query, ma se ci sono decine di migliaia di richieste di scrittura di dati, il disco rigido I0 non può più sopportarle. Per i normali siti Web BBS, ci sono spesso elevate richieste di scrittura simultanea di dati.

(2) Enorme spazio di archiviazione: requisiti per un'archiviazione efficiente e l'accesso a grandi quantità di dati

I siti Web SNS come Facebook e Friendfeed generano ogni giorno una grande quantità di informazioni dinamiche sugli utenti. Ad esempio, Friendfeed genererà non meno di 250 milioni di informazioni dinamiche sugli utenti in un mese. Per i database relazionali, l'efficienza delle query è molto bassa quando si eseguono query SQL in una tabella contenente 250 milioni di record.

(3) Elevata scalabilità e alta disponibilità: requisiti per un'elevata scalabilità e un'elevata disponibilità dei database

Nell'architettura Web, il database è il più difficile da scalare orizzontalmente. Quando il numero di utenti e di visite al sistema applicativo aumenta di giorno in giorno, il database non può semplicemente espandere le proprie prestazioni e capacità di carico aggiungendo hardware e nodi server come i servizi Web. Soprattutto per alcuni siti Web che devono fornire servizi 24 ore al giorno, gli aggiornamenti e le espansioni del database sono spesso accompagnati da tempi di inattività, manutenzione e migrazione dei dati, e il carico di lavoro è molto elevato.

I database relazionali e non relazionali hanno le proprie caratteristiche e scenari applicativi. La stretta combinazione dei due porterà nuove idee allo sviluppo dei database Web2.0. Lascia che i database relazionali si concentrino sulle relazioni e che i database non relazionali si concentrino sullo storage. Ad esempio, in un ambiente di database MySQL in cui lettura e scrittura sono separate, i dati a cui si accede frequentemente possono essere archiviati in un database non relazionale per migliorare la velocità di accesso.

4.Vantaggi di Redis

Ha velocità di lettura e scrittura dei dati estremamente elevate. La velocità di lettura dei dati può raggiungere fino a 110.000 volte/s e la velocità di scrittura dei dati può raggiungere fino a 81.000 volte/s.

Supporta tipi di dati avanzati, non solo supporta semplici dati di tipo chiave-valore, ma supporta anche operazioni di tipi di dati come stringhe, elenchi, hash, set e set ordinati.

Supporta la persistenza dei dati I dati in memoria possono essere salvati su disco e possono essere caricati nuovamente per essere utilizzati al riavvio.

Atomico, tutte le operazioni Redis sono atomiche.

Supporta il backup dei dati, ovvero il backup dei dati in modalità master-salve.

Redis è un database basato sulla memoria e la memorizzazione nella cache è uno dei suoi scenari applicativi più comuni. Inoltre, gli scenari applicativi comuni di Redis includono anche operazioni per ottenere i dati N più recenti, applicazioni di classificazione, applicazioni di conteggio, relazioni di archiviazione, sistemi di analisi in tempo reale e registrazione.

2. Installazione e ottimizzazione di Redis

1: Installazione

[root@localhost ~]# systemctl stop firewalld //Nell'ambiente sperimentale, disattivare il firewall non ha alcun effetto. Non è consigliabile disattivarlo nell'ambiente di produzione. Prova ad aggiungere una policy firewall.

[root@localhost ~]# setenforce 0 //Spegnere il kernel, che bloccherà l'esecuzione dell'applicazione.

[root@localhost ~]# yum -y install gcc* zlib-devel //Scarica gli strumenti richiesti per decomprimere il pacchetto tar

[root@localhost ~]#tar xvzf redis-4.0.9.tar.gz //redis è un'applicazione open source e gratuita. Puoi scaricare questo pacchetto dal sito Web ufficiale

[root@localhost ~]#cd redis-4.0.9/

[root@localhost redis-4.0.9]# crea

Avviso:

Durante la creazione potrebbe apparire il seguente messaggio di errore:

Soluzione 1: utilizzarerendi MALLOC=libc specifica l'allocatore di memoria per libccompilare

Soluzione 2: rendi pulito && mache distclean

[root@localhost redis-4.0.9]# make PREFIX=/usr/local/redis install

[root@localhost ~]# ln -s /usr/local/redis/bin/* /usr/local/bin/

[root@localhost redis-4.0.9]# cd /root/redis-4.0.9/utils/

[root@localhost utilità]# ./install_server.sh

Nota:

File di configurazione: /etc/redis/6379.conf //Percorso del file di configurazione

File di registro: /var/log/redis_6379.log //Percorso del file di registro

Dir dati: /var/lib/redis/6379 //Percorso file dati

Eseguibile: /usr/local/redis/bin/redis-server //percorso del file eseguibile

Eseguibile CLI: /usr/local/redis/bin/redis-cli //Strumento da riga di comando del client

2: Visualizza il processo

[root@localhost utilità]# netstat -anpt | grep redis

3: Controllo del servizio

[root@localhost ~]#/etc/init.d/redis_6379 arresto

[root@localhost ~]#/etc/init.d/redis_6379 inizio

[root@localhost ~]#/etc/init.d/redis_6379 riavvia

[root@localhost ~]#/etc/init.d/redis_6379 stato

4: Modifica dei parametri di configurazione

[root@localhost ~]#vim /etc/redis/6379.conf

legare 127.0.0.1 192.168.10.101    //Indirizzo dell'host in ascolto

porta 6379 //porta

demonizzare sì //Abilita il processo del demone

file pid /var/run/redis_6379.pid //Specificare il file PID

avviso di livello di registro //livello di registro

file di registro /var/log/redis_6379.log //Specificare il file di registro

[root@localhost~]#/etc/init.d/redis_6379 riavvia

[root@localhost utilità]# netstat -anpt | grep redis

3. Strumento di comando Redis

Ø redis-server: strumento per avviare Redis;

Ø benchmark redis: utilizzato per rilevare l'efficienza di funzionamento di Redis su questa macchina;

Ø redis-check-aof: ripara il file di persistenza AOF;

Ø redis-check-rdb: ripara i file di persistenza RDB;

Ø redis-cli: strumento da riga di comando Redis.

1: strumento da riga di comando redis-cli

(1) Connettiti a Redis locale

[root@localhost ~]# redis-cli

127.0.0.1:6379>

(2) Verificare se il servizio Redis è avviato

127.0.0.1:6379> ping

PONG

(3) Connessione remota

[root@localhost ~]#redis-cli -h 192.168.10.101 -p 6379

2: Ottieni aiuto

Øaiuto@<group> :Ottenere<group> elenco dei comandi in ;

Øaiuto<command> : Ottieni aiuto per un comando;

Ø aiuto<tab> : ottieni un elenco di argomenti che potrebbero essere utili.

Nota:

Ø aiuto<tab> : ottieni un elenco di argomenti che potrebbero essere utili.

Dopo aver digitato aiuto, premere il tasto tab

(1)Visualizza tutti i comandi relativi al tipo di dati Elenco

127.0.0.1:6379&gt;aiuto @list

(2)Visualizza la guida del comando per il comando set

127.0.0.1:6379&gt;imposta aiuto

3: strumento di test redis-benchmark

redis-benchmark è lo strumento ufficiale di test delle prestazioni Redis in grado di testare efficacemente le prestazioni dei servizi Redis.

Ø -h: specifica il nome host del server;

Ø -p: Specifica la porta del server;

Ø -s: specifica il socket del server;

Ø -c: specifica il numero di connessioni simultanee;

Ø -n: Specificare il numero di richieste;

Ø -d: specifica la dimensione dei dati del valore SET/GET in byte;

Ø -k:1=mantieni attivo 0=riconnetti;

Ø -r: SET/GET/INCR utilizza chiavi casuali, SADD utilizza valori casuali;

Ø -P: Trasmissione attraverso tubazioni<numreq> chiedere;

Ø -q: forza l'uscita da redis. Vengono visualizzati solo i valori query/sec;

Ø --csv: output in formato CSV;

Ø -l: genera un loop ed esegue il test in modo permanente;

Ø -t: esegue solo un elenco separato da virgole di comandi di test;

Ø -I: modalità inattiva. Apri solo le connessioni N inattive e attendi.

(1) Provare le prestazioni della richiesta

[root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -c 100 -n 100000 //Invia 100 connessioni simultanee e 100000 test di richiesta al server Redis con indirizzo IP 192.168.10.101 e prestazioni della porta 6379

Nota:

Ø -h: specifica il nome host del server;

Ø -p: Specifica la porta del server;

Ø -c: specifica il numero di connessioni simultanee;

Ø -n: Specificare il numero di richieste;

====== MSET (10 tasti) ======

100000 richieste completate in 1,02 secondi

100 client paralleli ##100 connessioni simultanee

Carico utile di 3 byte

mantenere in vita: 1

87,25% &lt;= 1 millisecondi ##87.25% dei tempi di esecuzione dei comandi è inferiore o uguale a 1 millisecondo

99,90% &lt;= 2 millisecondi

100,00% &lt;= 2 millisecondi

97943,19 richieste al secondo #Numero di richieste al secondo

(2) Testare le prestazioni di accesso

[root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -q -d 100

Nota:

Ø -h: specifica il nome host del server;

Ø -p: Specifica la porta del server;

Ø -d: specifica la dimensione dei dati del valore SET/GET in byte;

Ø -q: forza l'uscita da redis. Vengono visualizzati solo i valori query/sec;

PING_INLINE: 121506,68 richieste al secondo //Quante operazioni PING vengono completate al secondo

PING_BULK: 124378,11 richieste al secondo

SET: 121654,50 richieste al secondo //Quante volte al secondo viene completato il valore della chiave SET

GET: 122100.12 richieste al secondo //Quanti valori chiave GET sono stati completati al secondo

INCR: 118764,84 richieste al secondo //Quanti conteggi atomici vengono completati al secondo

LPUSH: 112612,61 richieste al secondo

RPUSH: 118623,96 richieste al secondo

LPOP: 107874,87 richieste al secondo

RPOP: 114416,48 richieste al secondo

SADD: 123304,56 richieste al secondo

HSET: 122249,38 richieste al secondo

SPOP: 128040,97 richieste al secondo

LPUSH (necessario per il benchmark LRANGE): 116686,12 richieste al secondo

LRANGE_100 (primi 100 elementi): 40016,00 richieste al secondo

LRANGE_300 (primi 300 elementi): 11991,85 richieste al secondo

LRANGE_500 (primi 450 elementi): 7381,71 richieste al secondo

LRANGE_600 (primi 600 elementi): 5230,67 richieste al secondo

MSET (10 chiavi): 92421,44 richieste al secondo //Chiave multipla v al secondolodeNumero di richieste

(3)Imposta e spingi le prestazioni delle operazioni

[root@localhost ~]# redis-benchmark -t set,lpush -n 100000 -q //Testa le prestazioni del servizio Redis su questa macchina durante le operazioni set e lpush.

Nota:

Ø -n: Specificare il numero di richieste;

Ø -q: forza l'uscita da redis. Vengono visualizzati solo i valori query/sec;

Ø -t: esegue solo un elenco separato da virgole di comandi di test;

SET: 121951,22 richieste al secondo

LPUSH: 127226,46 richieste al secondo

4. Redis Comandi comuni del database

Ø impostato: Memorizza i dati. Il formato del comando di base è imposta il valore chiave

Ø Ottenere: Ottieni dati, il formato del comando di base è prendi la chiave

1chiave Comandi correlati

esistere Rosso nel database, con chiave I comandi rilevanti includono principalmente i seguenti.

1) aggiungi coppie chiave-valore

utilizzo chiavi Il comando può accettare un elenco di valori chiave conformi alle regole. Di solito può essere combinato* ,? opzioni da utilizzare.

127.0.0.1:6379>impostare k1 1

OK

127.0.0.1:6379>impostare k2 2

OK

127.0.0.1:6379>impostare k3 3

OK

127.0.0.1:6379>imposta v1 4

OK

127.0.0.1:6379>impostare v5 5

OK

(2) Visualizza tutte le chiavi nel database corrente

127.0.0.1:6379>CHIAVI  *  

1) "insegnante"

2) "k1"

3) "k2"

4) "k3"

5) "v1"

6) "v5"

127.0.0.1:6379>impostare v22 5

OK

(3) Visualizza il database corrente con la dati all'inizio

127.0.0.1:6379>CHIAVI v*    

1) "v1"

2) "v5"

3) "v22"

(4) Visualizza il database corrente con la Contiene qualsiasi bit di dati dopo l'inizio

127.0.0.1:6379>CHIAVI v?   

1) "v1"

2) "v5"

(5) Visualizza il database corrente con la inizio la Contiene due cifre qualsiasi di dati dopo l'inizio

127.0.0.1:6379>CHIAVI v??   

1) "v22"

2:esiste

esiste Il comando può determinare se il valore della chiave esiste

127.0.0.1:6379>esiste insegnante

(numero intero) 1

Il risultato è 1, che significa insegnante la chiave esiste

127.0.0.1:6379>esiste il tè

(intero) 0

Il risultato è 0, il che significa la chiave non esiste

3: del

del Il comando può eliminare l'oggetto specificato chiave

127.0.0.1:6379>chiavi *

1) "insegnante"

2) "v1"

3) "v22"

4) "k3"

5) "k1"

6) "k2"

7) "v5"

127.0.0.1:6379> del v5

(numero intero) 1

127.0.0.1:6379>ottenere v5

(nullo)

4:tipo

utilizzo tipo È possibile ottenere il comando chiave corrispondente valore tipo di valore

127.0.0.1:6379>tipo k1

corda

Nota:

Tipi di dati supportati da Redis

  • String: il tipo più semplice, ovvero set e get ordinario, utilizzato per la memorizzazione nella cache dei valori chiave.
  • Hash: una struttura simile alla mappa In genere, i dati strutturati, come un oggetto, possono essere memorizzati nella cache in Redis.
  • Elenco: Elenco è un elenco ordinato. Puoi utilizzare elenco per memorizzare alcune strutture di dati di tipo elenco, come elenchi di fan, elenchi di commenti di articoli, ecc.
  • Set: Set è una raccolta non ordinata che rimuove automaticamente i duplicati.
  • Set ordinato: Set ordinato è un set ordinato, che è deduplicato ma può essere ordinato Durante la scrittura, viene assegnato un punteggio e ordinato automaticamente in base al punteggio.

5:rinominare

rinominare Il comando è per un esistente chiave rinominare

Nell'uso reale, si consiglia di utilizzare esiste Comando per visualizzare l'obiettivo chiave esiste e quindi decidere se eseguirlo rinominare comando per evitare di sovrascrivere dati importanti

127.0.0.1:6379>chiavi v*

1) "v1"

2) "v22"

127.0.0.1:6379>rinomina v22 v2

OK

127.0.0.1:6379>chiavi v*

1) "v1"

2) "v2"

127.0.0.1:6379>ottenere v1

"4"

127.0.0.1:6379>ottenere v2

"5"

127.0.0.1:6379>rinomina v1 v2

OK

127.0.0.1:6379>ottenere v1

(nullo)

127.0.0.1:6379>ottenere v2

"4"

6:rinominare

rinominare La funzione del comando è modificare l'esistente chiave Eseguire una ridenominazione e verificare se il nuovo nome esiste.

utilizzorinominare Quando il comando viene rinominato, se target chiave Se esiste, non verrà rinominato.

127.0.0.1:6379>chiavi *

1) "insegnante"

2) "k3"

3) "k1"

4) "k2"

5) "v2"

127.0.0.1:6379>ottenere insegnante

"Zhanglong"

127.0.0.1:6379>ottenere v2

"4"

127.0.0.1:6379>insegnante renamenx v2

(intero) 0

127.0.0.1:6379>chiavi *

1) "insegnante"

2) "k3"

3) "k1"

4) "k2"

5) "v2"

127.0.0.1:6379>ottenere insegnante

"Zhanglong"

127.0.0.1:6379>ottenere v2

"4

7:dimensione database

dimensione database Lo scopo del comando è visualizzare il database corrente chiave Numero di.

127.0.0.1:6379> dimensione database

(numero intero) 5

5. Comandi comuni per più database

1: passaggio tra più database

Rosso Incluso per impostazione predefinita senza alcuna modifica 16 database, il nome del database è un numero 0-15 da nominare in ordine

(1)Passa al numero di serie 10 Banca dati

127.0.0.1:6379>seleziona 10

OK

(2)Passa al numero di serie 15 Banca dati

127.0.0.1:6379[10]>seleziona 15

OK

(3)Passa al numero di serie 0 Banca dati

127.0.0.1:6379[15]>seleziona 0

2: spostamento dei dati tra più database

Rosso Le molteplici banche dati sono in una certa misura relativamente indipendenti, ad esempio nella banca dati 0 Conservare sopra chi1 dati, in altro 1-15 Non è possibile visualizzarlo nel database.

127.0.0.1:6379>impostare k1 100

OK

127.0.0.1:6379>prendi k1

"100"

127.0.0.1:6379>seleziona 1

OK

127.0.0.1:6379[1]>prendi k1

(nullo)

127.0.0.1:6379[1]>seleziona 0 //Passa al database di destinazione 0

OK

127.0.0.1:6379>prendi k1 //Controlla se i dati di destinazione esistono

"100"

127.0.0.1:6379>muovi k1 1 //Banca dati 0 mezzo chi1 Sposta nel database 1 mezzo

(numero intero) 1

127.0.0.1:6379>seleziona 1 //Passa al database di destinazione 1

OK

127.0.0.1:6379[1]>prendi k1 //Visualizza i dati spostati

"100"

127.0.0.1:6379[1]> seleziona 0

OK

127.0.0.1:6379> prendi k1 //nella banca dati 0 Non può essere visionato chi1 valore

(nullo)

3: Cancella i dati nel database

Per cancellare i dati del database corrente, utilizzare SVUOTA-DB

Implementazione del comando; cancellare tutti i dati del database, utilizzare FLUSHALL Implementazione del comando

6. Persistenza di Redis

Rosso Tutti i dati vengono archiviati in memoria e quindi salvati in modo asincrono su disco di volta in volta.(Questo è chiamatoModalità semipersistente”); Puoi anche scrivere ogni modifica dei dati in a aggiungi solo file (aof)In(Questo è chiamatoModalità di persistenza completa”)

Poiché i dati Redis vengono archiviati in memoria, se la persistenza non è configurata,Rosso Dopo il riavvio, tutti i dati andranno persi.Pertanto, è necessario abilitareRosso La funzione di persistenza salva i dati su disco Quando Rosso Dopo un riavvio, i dati possono essere recuperati dal disco.Rosso Sono forniti due metodi per la persistenza, uno è RDBBanca dati Redis Persistenza (il principio è quello di ReidiTempi di registrazione del database in memoria scarico su disco RDB persistenza), l'altro lo è AOFaggiungere solo filePersistenza (il principio è quello di Reidi Il registro delle operazioni viene scritto nel file in modo aggiunto).

1:RDB E AOF La differenza

(1) Cos'è l'RDB?

Il metodo predefinito

La persistenza RDB è il processo di generazione di un'istantanea dei dati di processo correnti e di salvataggio sul disco rigido. Il processo di attivazione della persistenza RDB è suddiviso in attivazione manuale e attivazione automatica.

Meccanismo di attivazione: l'attivazione manuale corrisponde rispettivamente ai comandi save e bgsave.

comando save: blocca il server Redis corrente fino al completamento del processo RDB. Per le istanze con una grande quantità di memoria, causerà un blocco temporale. Non consigliato per l'uso in ambienti online.

Comando bgsave: il processo Redis esegue l'operazione fork (funzione utilizzata per creare un processo) per creare un processo figlio. Il processo di persistenza RDB è responsabile del processo figlio e termina automaticamente dopo il completamento. Il blocco avviene solo durante la fase di fork.

(2) Vantaggi e svantaggi di RDB:

Vantaggi dell'RDB:

RDB è un file binario compatto e compresso che rappresenta un'istantanea dei dati Redis in un determinato momento. È molto adatto per backup, copia completa e altri scenari. Ad esempio, esegui il backup bgsave ogni 6 ore e copia il file RDB sul computer remoto o sul file system per il ripristino di emergenza.

Redis carica RDB e recupera i dati molto più velocemente del metodo AOF.

Svantaggi dell'RDB:

I dati in modalità RDB non possono raggiungere la persistenza in tempo reale/persistenza di secondo livello. Poiché ogni volta che viene eseguito bgsave, viene eseguita un'operazione di fork per creare un processo figlio, che è un'operazione pesante e il costo di un'esecuzione frequente è troppo alto.

I file RDB vengono salvati in un formato binario specifico Durante l'evoluzione delle versioni Redis, esistono più formati di versioni RDB. Si verifica un problema che la vecchia versione del servizio Redis non è compatibile con la nuova versione del formato RDB.

2. Cos'è l'AOF?

Persistenza AOF (aggiunta solo file): registra ogni comando di scrittura in un registro indipendente, quindi riesegui il comando nel file AOF per ripristinare i dati al riavvio. La funzione principale di AOF è risolvere il problema in tempo reale della persistenza dei dati. Ora è la corrente principale della persistenza di Redis.

Criteri per la scelta tra i due:

Sacrificare alcune prestazioni in cambio di una maggiore coerenza della cache (AOF),

Quando le operazioni di scrittura sono frequenti, non abilitare il backup in cambio di prestazioni più elevate e attendere l'operazione manuale. salva quando, esegui nuovamente il backup (RDB

Nota:

Se è necessario caricare un file persistente dopo il riavvio dei redies, verranno selezionati i file AOF.

Se viene abilitato prima RDB e poi AOF, e prima viene reso persistente RDB, il contenuto del file RDB verrà sovrascritto da AOF.

3:Rosso Configurazione della persistenza

(1)RDB Configurazione della persistenza

[root@localhost ~]# vim /etc/redis/6379.conf

Apri 6379.conf Dopo il file, cerca salva, è possibile visualizzare le informazioni di configurazione come mostrato di seguito.

  • Ø salva 900 1: dopo 900 secondi (15 minuti), se cambia almeno 1 tasto, scarica l'istantanea della memoria.
  • Ø salva 300 10: dopo 300 secondi (5 minuti), se sono cambiate almeno 10 chiavi, scarica l'istantanea della memoria.
  • Ø save 60 10000: dopo 60 secondi (1 minuto), se sono state modificate almeno 10000 chiavi, scarica l'istantanea della memoria.
  • dbfilename dump.rdb: nome file RDB ##254 riga
  • dir /var/lib/redis/6379: percorso file RDB ##264 riga
  • rdbcompression yes: indica se comprimere la riga ##242

(2) AOF Configurazione della persistenza

esistere Rosso Esistono tre metodi di sincronizzazione nel file di configurazione:

  • appendonly sì: abilita la persistenza AOF (il valore predefinito è no) ##673 riga
  • appendfilename "appendonly.aof ": nome file AOF ##677 riga
  • # appendfsync sempre
  • appendfsync ogni secondo
  • # appendfsync no

sempre: persistenza sincrona, ogni volta che i dati cambiano, verranno scritti immediatamente sul disco

ogni secondo: consigliato per impostazione predefinita, registra in modo asincrono ogni secondo (valore predefinito)

no: nessuna sincronizzazione, lasciando al sistema operativo la decisione su come sincronizzarsi

  • aof-load-troncato sì ##769行

Ignora l'ultima istruzione potenzialmente problematica

[root@localhost ~]#/etc/init.d/redis_6379 riavvia

(2) Riscrittura AOF

per risolvere AOF Se la dimensione del file continua ad aumentare, gli utenti possono segnalarlo Rosso Inviare BGREWRITEAOFOrdine.BGREWRITEAOF Il comando verrà rimosso tramite AOF comandi ridondanti nel file da sovrascrivere (riscrivereAOFarchiviare, creare AOF Mantieni la dimensione del file quanto più piccola possibile.

127.0.0.1:6379&gt; bgrewriteaof

Avviata la riscrittura del file di aggiunta solo in background

# Quando il registro è BGREWRITEAOF,Seno-appendfsync-durante-la-riscritturaImpostato su sì, il che significa che le nuove operazioni di scrittura non verranno sincronizzate con fsync, ma verranno archiviate solo temporaneamente nel buffer. , per evitare conflitti nelle operazioni di I/O del disco, attendere il completamento della riscrittura prima di scrivere. L'impostazione predefinita in Redis è no

no-appendfsync-on-rewrite no

# Quando la dimensione corrente del file AOF è doppia rispetto alla dimensione del file AOF durante l'ultima riscrittura del registro, si verifica l'operazione BGREWRITEAOF.

percentuale di riscrittura automatica aof 100

Nota:

100 si riferisce aIl rapporto di crescita del file AOF si riferisce al rapporto di crescita del file AOF corrente rispetto all'ultima riscrittura.100 è due volte

#Il valore minimo del file AOF corrente per eseguire il comando BGREWRITEAOF per evitare frequenti BGREWRITEAOF a causa delle dimensioni ridotte del file al primo avvio di Reids.

auto-aof-rewrite-min-size 64mb

7. Gestione delle prestazioni

1: Visualizza le informazioni sulla memoria

192.168.9.236:7001> memoria informativa

used_memory:1210776 #La dimensione della memoria utilizzata,in byte
used_memory_human:1.15M # Display con unità,a M
used_memory_rss:7802880 # Quanta memoria occupa redis dal punto di vista del sistema operativo?
used_memory_rss_human:7.44M # Display con unità
maxmemory:1073741824 # Dimensione massima della memoria
maxmemory_human:1.00G # Display con unità

2: Strategia di riciclaggio

politica-maxmemory: Strategia di riciclaggio

Ø volatile-lru: permette Rosso Scegli quello utilizzato meno di recente dall'intero set di dati chiave Eliminare

Ø volatile-ttlEliminare in base all'ora di scadenza della chiave 

Ø volatile-casuale: seleziona in modo casuale i dati da eliminare dalla raccolta dati con data di scadenza impostata;

Ø tutti i tasti-lru:utilizzo LRU Gli algoritmi eliminano i dati da tutti i set di dati;

Ø tutti i tasti-casuale: selezionare in modo casuale i dati da eliminare dalla raccolta dati;

Ø non sfratto: Disabilita l'eliminazione dei dati (valore predefinito)

Nota:

Imposta la scadenza della chiave

scadenza v1 10

v1 ha una scadenza di 10 secondi

Nota:

Quando Rosso È necessario recuperarne uno a causa della pressione della memoria chiave ora,Rosso La prima considerazione non è riciclare i dati più vecchi, ma quelli utilizzati meno di recente. chiave o in scadenza chiave Scegline uno a caso tra chiave, rimosso dal set di dati

8. Imposta la password per Redis

1: Metodo di impostazione

Metodo 1. Impostare la password tramite il file di configurazione redis.conf

Trova la parola chiave requirepass, seguita dalla password. Per impostazione predefinita è commentata, ovvero non è richiesta alcuna password, come segue:

Apri il commento, impostalo come password e riavvia

Metodo 2. Imposta la password nominandola

Utilizzare redis-cli per connettersi a redis ed eseguire il comando seguente

configurazione impostata requirepass 123456

Una volta completata l'esecuzione, non è necessario riavviare. Sarà necessario inserire la password quando si esce dal client e si accede nuovamente.

2.Metodo di connessione

1. Inserisci la tua password durante la connessione

[root@localhost bin]# ./redis-cli -a 123456

2. Connettersi prima e poi inserire la password

[root@localhost bin]# ./redis-cli127.0.0.1:6379&gt; autenticazione 123456

3: Metodo di chiusura

[root@localhost bin]# ./redis-cli -a 123456 arresto

4: Differenza

1) La password impostata modificando il file di configurazione avrà effetto in modo permanente; la password impostata utilizzando il comando avrà effetto temporaneo e diventerà non valida dopo il riavvio.

2) La modifica della password impostata nel file di configurazione richiede un riavvio per avere effetto; utilizzare la password impostata dal comando per avere effetto dopo essersi disconnessi e aver effettuato nuovamente l'accesso e diventerà non valida dopo il riavvio.

3) La priorità del comando è superiore alla priorità del file di configurazione