le mie informazioni di contatto
Posta[email protected]
2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Per assistere tutti nel percorso del colloquio, per gli studenti che non sono ancora sicuri di Redis, abbiamo compilato 40 domande comuni per il colloquio su Redis in modo che tu non possa farti prendere dal panico durante il colloquio e sforzarti di ottenere l'offerta!
1. Cos'è Redis?
Redis è completamente open source e gratuito, è conforme al protocollo BSD ed è un database chiave-valore ad alte prestazioni.
Redis presenta le seguenti tre caratteristiche rispetto ad altri prodotti di memorizzazione nella cache di valori-chiave:
Redis supporta la persistenza dei dati Può salvare i dati nella memoria sul disco e caricarli nuovamente per utilizzarli al riavvio.
Redis non solo supporta semplici dati di tipo chiave-valore, ma fornisce anche l'archiviazione di strutture dati come list, set, zset e hash.
Redis supporta il backup dei dati, ovvero il backup dei dati in modalità master-slave.
Vantaggi di Redis:
Prestazioni estremamente elevate: Redis può leggere a una velocità di 110.000 volte/s e scrivere a una velocità di 81.000 volte/s.
Tipi di dati avanzati: Redis supporta operazioni con tipi di dati stringhe, elenchi, hash, insiemi e insiemi ordinati in casi binari.
Atomico: tutte le operazioni in Redis sono atomiche, ovvero vengono eseguite correttamente o non vengono eseguite affatto. Le singole operazioni sono atomiche. Le operazioni multiple supportano anche le transazioni, ovvero l'atomicità, racchiuse dalle istruzioni MULTI ed EXEC.
Funzionalità avanzate: Redis supporta anche pubblicazione/sottoscrizione, notifiche, scadenza delle chiavi e altre funzionalità.
In che modo Redis è diverso dagli altri negozi di valori-chiave?
Redis ha strutture dati più complesse e fornisce operazioni atomiche su di esse. Questo è un percorso evolutivo diverso da altri database. I tipi di dati di Redis si basano su strutture dati di base e sono trasparenti per i programmatori, senza la necessità di ulteriori astrazioni.
Redis viene eseguito in memoria ma può essere persistente su disco, quindi esiste un compromesso in termini di memoria quando si esegue la lettura e la scrittura ad alta velocità di diversi set di dati, poiché la quantità di dati non può essere maggiore della memoria hardware. Un altro vantaggio dei database in memoria è che, rispetto alle stesse complesse strutture dati su disco, operare in memoria è molto semplice, quindi Redis può fare molte cose con forte complessità interna. Inoltre, in termini di formato del disco, sono compatti e generati in aggiunta poiché non richiedono accesso casuale.
2. Quali sono i tipi di dati di Redis?
Redis supporta cinque tipi di dati: string (string), hash (hash), list (list), set (set) e zsetsorted set (set ordinato).
Quelli più comunemente usati nei nostri progetti attuali sono string e hash. Se sei un utente Redis intermedio e avanzato, devi anche aggiungere le seguenti strutture dati HyperLogLog, Geo e Pub/Sub.
Se dici di aver giocato anche con Redis Module, come BloomFilter, RedisSearch e Redis-ML, gli occhi dell'intervistatore inizieranno a brillare.
3. Quali sono i vantaggi dell'utilizzo di Redis?
È veloce perché i dati sono archiviati in memoria, in modo simile a HashMap. Il vantaggio di HashMap è che la complessità temporale della ricerca e dell'operazione è O1)
Supporta tipi di dati avanzati, inclusi stringa, elenco, set, Zset, hash, ecc.
Supporta le transazioni e le operazioni sono tutte atomiche. La cosiddetta atomicità significa che tutte le modifiche ai dati vengono eseguite o non vengono eseguite affatto.
Funzionalità avanzate, possono essere utilizzate per la memorizzazione nella cache, la messaggistica, l'impostazione del tempo di scadenza in base alla chiave, verrà automaticamente eliminato dopo la scadenza
4. Quali sono i vantaggi di Redis rispetto a Memcached?
Tutti i valori in Memcached sono stringhe semplici e Redis, in sostituzione, supporta classi di dati più ricche.
Redis è molto più veloce di Memcached
Redis può rendere persistenti i propri dati
5. Quali sono le differenze tra Memcache e Redis?
Il metodo di archiviazione Memecache memorizza tutti i dati nella memoria. Si riaggancia dopo un'interruzione di corrente. I dati non possono superare la dimensione della memoria. Redis è parzialmente archiviato sul disco rigido, il che garantisce la durabilità dei dati.
Tipi di supporto dati Il supporto di Memcache per i tipi di dati è relativamente semplice. Redis ha tipi di dati complessi.
I modelli sottostanti utilizzati differiscono nei metodi di implementazione sottostanti e nei protocolli applicativi per la comunicazione con i client. Redis costruisce direttamente il proprio meccanismo VM, perché se il sistema generale chiama le funzioni di sistema, perderà una certa quantità di tempo per spostarsi e richiedere.
6. Redis è a processo singolo e a thread singolo?
Redis è un processo singolo e un thread singolo. Redis utilizza la tecnologia delle code per trasformare l'accesso simultaneo in accesso seriale, eliminando il sovraccarico del tradizionale controllo seriale del database.
7. Qual è la capacità massima di uno smart storage di tipo stringa?
512 milioni.
8. Qual è il meccanismo di persistenza di Redis? Quali sono i vantaggi e gli svantaggi di ciascuno?
Redis fornisce due meccanismi di persistenza, meccanismi RDB e AOF:
Metodo di persistenza RDB (Redis DataBase): si riferisce alla registrazione di tutte le coppie chiave-valore del database Redis in modalità semi-persistente utilizzando uno snapshot del set di dati e alla scrittura dei dati in un file temporaneo in un determinato momento dopo la persistenza è completato, utilizzare questo Il file temporaneo sostituisce l'ultimo file persistente per ottenere il ripristino dei dati.
vantaggio:
C'è solo un file dump.rdb, che è utile per la persistenza.
La tolleranza ai disastri è buona, un file può essere salvato su un disco sicuro.
Per massimizzare le prestazioni, eseguire il fork del processo figlio per completare l'operazione di scrittura e consentire al processo principale di continuare a elaborare i comandi, in modo che l'I/O venga massimizzato. Utilizza un sottoprocesso separato per la persistenza e il processo principale non eseguirà alcuna operazione di I/O, garantendo le prestazioni elevate di Redis.
Quando il set di dati è di grandi dimensioni, l'efficienza di avvio è superiore a AOF.
Svantaggi: scarsa sicurezza dei dati. RDB viene mantenuto a intervalli Se Redis fallisce durante la persistenza, si verificherà una perdita di dati.Pertanto, questo metodo è più adatto quando i requisiti relativi ai dati non sono rigorosi.
Metodo di persistenza AOF (file di sola aggiunta): significa che tutti i record della riga di comando vengono archiviati e archiviati in modo completamente persistente come file aof nel formato del protocollo di richiesta di comando Redis.
vantaggio:
Per la sicurezza dei dati, la persistenza AOF può essere configurata con l'attributo appendfsync. Se esiste sempre, ogni operazione di comando verrà registrata nel file AOF.
Scrivendo i file in modalità aggiunta, anche se il server si blocca a metà, il problema della coerenza dei dati può essere risolto tramite lo strumento redis-check-aof.
La modalità di riscrittura del meccanismo AOF. Prima che il file AOF venga riscritto (i comandi verranno uniti e riscritti quando il file è troppo grande), è possibile eliminare alcuni comandi (come flushall che è stato utilizzato accidentalmente).
discordanza:
I file AOF sono più grandi dei file RDB e sono più lenti da ripristinare.
Quando il set di dati è di grandi dimensioni, l'efficienza di avvio è inferiore a RDB.
9. Redis problemi e soluzioni comuni relativi alle prestazioni
È meglio non scrivere istantanee di memoria se Master scrive istantanee di memoria, il comando di salvataggio pianifica la funzione rdbSave, che bloccherà il lavoro del thread principale. Quando l'istantanea è relativamente grande, l'impatto sulle prestazioni sarà molto ampio e il servizio verrà sospeso ad intermittenza.
Se i dati sono importanti, uno slave abilita i dati di backup AOF e la politica è impostata per sincronizzare un dato al secondo.
Per la velocità della replica master-slave e la stabilità della connessione, è meglio che Master e Slave si trovino sulla stessa LAN.
Cerca di evitare di aggiungere slave a un database master stressato.
Non utilizzare una struttura a grafico per la replica master-slave È più stabile utilizzare una struttura a elenco collegato unidirezionale, ovvero: Master