2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Auttaaksemme kaikkia haastattelumatkalla, Rediksestä vielä epävarmoille opiskelijoille olemme koonneet 40 yhteistä Redis-haastattelukysymystä, jotta haastattelun aikana ei paniikkia ja tarjousta yritetään saada!
1. Mikä Redis on?
Redis on täysin avoimen lähdekoodin ja ilmainen, BSD-protokollan mukainen ja korkean suorituskyvyn avainarvotietokanta.
Redisillä on seuraavat kolme ominaisuutta muihin avainarvovälimuistituotteisiin verrattuna:
Redis tukee tietojen pysyvyyttä Se voi tallentaa muistissa olevat tiedot levylle ja ladata sen uudelleen käytettäväksi uudelleenkäynnistyksen yhteydessä.
Redis ei tue vain yksinkertaisia avainarvotyyppisiä tietoja, vaan tarjoaa myös tietorakenteiden, kuten luettelon, joukon, zset ja hash, tallennuksen.
Redis tukee tietojen varmuuskopiointia eli tietojen varmuuskopiointia isäntä-slave-tilassa.
Redin edut:
Erittäin korkea suorituskyky: Redis voi lukea nopeudella 110 000 kertaa/s ja kirjoittaa 81 000 kertaa/s.
Rikkaat tietotyypit: Redis tukee merkkijonoja, luetteloita, tiivisteitä, joukkoja ja järjestettyjä joukkoja -tietotyyppitoimintoja binääritapauksissa.
Atomic: Kaikki Redis-toiminnot ovat atomisia, mikä tarkoittaa, että ne joko suoritetaan onnistuneesti tai niitä ei suoriteta ollenkaan. Yksittäiset toiminnot ovat atomisia. Useat toiminnot tukevat myös MULTI- ja EXEC-käskyjen mukaisia tapahtumia eli atomiteettia.
Rikkaat ominaisuudet: Redis tukee myös julkaisua/tilausta, ilmoituksia, avainten vanhenemista ja muita ominaisuuksia.
Miten Redis eroaa muista avainarvokaupoista?
Rediksen tietorakenteet ovat monimutkaisempia ja ne tarjoavat atomioperaatioita. Tämä on evoluutiopolku, joka eroaa muista tietokannoista. Redisin tietotyypit perustuvat perustietorakenteisiin ja ovat ohjelmoijille läpinäkyviä ilman ylimääräisiä abstraktioita.
Redis toimii muistissa, mutta se voidaan säilyttää levyllä, joten eri tietojoukkojen nopean lukemisen ja kirjoittamisen yhteydessä tapahtuu muistin kompromissi, koska tiedon määrä ei voi olla suurempi kuin laitteiston muisti. Toinen muistin sisäisten tietokantojen etu on, että verrattuna samoihin monimutkaisiin levyrakenteisiin, muistissa käyttö on hyvin yksinkertaista, joten Redis voi tehdä paljon asioita, joilla on vahva sisäinen monimutkaisuus. Myös levymuodon suhteen ne ovat kompakteja ja liitteenä luotuja, koska ne eivät vaadi satunnaiskäyttöä.
2. Mitkä ovat Rediksen tietotyypit?
Redis tukee viittä tietotyyppiä: merkkijono (merkkijono), hash (hash), luettelo (luettelo), joukko (joukko) ja zsetsorted joukko (järjestetty joukko).
Varsinaisissa projekteissamme yleisimmin käytettyjä ovat merkkijono ja hash. Jos olet keskitason ja edistynyt Redis-käyttäjä, sinun on lisättävä myös seuraavat tietorakenteet HyperLogLog, Geo ja Pub/Sub.
Jos sanot, että olet pelannut myös Redis Modulen kanssa, kuten BloomFilter, RedisSearch ja Redis-ML, haastattelijan silmät alkavat loistaa.
3. Mitä hyötyä Rediksen käytöstä on?
Se on nopea, koska tiedot tallennetaan muistiin, kuten HashMap. HashMapin etuna on, että haun ja toiminnan aika monimutkaisuus on O1)
Tukee monipuolisia tietotyyppejä, mukaan lukien merkkijono, luettelo, joukko, Zset, hash jne.
Tukee transaktioita, ja kaikki toiminnot ovat atomisia. Niin kutsuttu atomiteetti tarkoittaa, että kaikki dataan tehdyt muutokset joko suoritetaan tai niitä ei suoriteta ollenkaan.
Monipuoliset ominaisuudet, joita voidaan käyttää välimuistiin, viestien lähettämiseen, vanhentumisajan asettamiseen avaimella, se poistetaan automaattisesti vanhenemisen jälkeen
4. Mitä etuja Redisillä on verrattuna Memcachediin?
Kaikki Memcachedin arvot ovat yksinkertaisia merkkijonoja, ja sen korvaajana Redis tukee rikkaampia tietoluokkia.
Redis on paljon nopeampi kuin Memcached
Redis voi säilyttää tiedot
5. Mitä eroja on Memcachen ja Redisin välillä?
Tallennusmenetelmä Memecache tallentaa kaikki tiedot muistiin. Se katkeaa sähkökatkon jälkeen. Tiedot eivät voi ylittää muistin kokoa. Redis on osittain tallennettu kiintolevylle, mikä varmistaa tietojen kestävyyden.
Tietojen tukityypit Memcachen tuki tietotyypeille on suhteellisen yksinkertainen. Redisillä on monimutkaisia tietotyyppejä.
Käytetyt taustalla olevat mallit eroavat taustalla olevilta toteutusmenetelmiltään ja sovellusprotokolliltaan asiakkaiden kanssa kommunikointiin. Redis rakentaa suoraan oman VM-mekanisminsa, koska jos yleinen järjestelmä kutsuu järjestelmätoimintoja, se tuhlaa tietyn ajan liikkumiseen ja pyytämiseen.
6. Onko Redis yksiprosessiinen ja yksisäikeinen?
Redis on yksi prosessi ja yksi säie Redis käyttää jonotekniikkaa muuttaakseen samanaikaisen käytön sarjakäytöksi, mikä eliminoi perinteisen tietokannan sarjaohjauksen.
7. Mikä on merkkijonotyyppisen älykäs tallennustilan enimmäiskapasiteetti?
512 miljoonaa.
8. Mikä on Rediksen pysyvyysmekanismi? Mitkä ovat kunkin edut ja haitat?
Redis tarjoaa kaksi pysyvyysmekanismia, RDB- ja AOF-mekanismit:
RDB (Redis DataBase) -pysyvyysmenetelmä: viittaa kaikkien Redis-tietokannan avainarvoparien tallentamiseen puolipysyvässä tilassa tietojoukon tilannevedoksen avulla ja tietojen kirjoittamiseen väliaikaiseen tiedostoon tiettynä ajankohtana pysymisen jälkeen on valmis, käytä tätä Väliaikainen tiedosto korvaa viimeisen säilytetyn tiedoston tietojen palauttamiseksi.
etu:
On vain yksi tiedosto dump.rdb, joka on kätevä pysyvyyden vuoksi.
Katastrofin sietokyky on hyvä, tiedosto voidaan tallentaa turvalliselle levylle.
Suorituskyvyn maksimoimiseksi haaroittele aliprosessi loppuun kirjoitustoiminto ja anna pääprosessin jatkaa komentojen käsittelyä, jotta IO on maksimoitu. Käytä erillistä aliprosessia pysyvyyttä varten, jolloin pääprosessi ei suorita IO-toimintoja, mikä varmistaa Redisin korkean suorituskyvyn.
Kun tietojoukko on suuri, käynnistyksen tehokkuus on korkeampi kuin AOF.
Miinukset: alhainen tietoturva. RDB säilyy tietyin väliajoin. Jos Redis epäonnistuu pysyvyyden aikana, tapahtuu tietoja.Siksi tämä menetelmä on sopivampi, kun tietovaatimukset eivät ole tiukat.
AOF (Append-only file) pysyvyysmenetelmä: tarkoittaa, että kaikki komentorivitietueet tallennetaan täysin pysyvästi ja tallennetaan aof-tiedostoina Redis-komentopyyntöprotokollan muodossa.
etu:
Tietoturvan vuoksi AOF:n pysyvyys voidaan määrittää appendfsync-attribuutilla. Jos on aina, jokainen komentotoiminto tallennetaan AOF-tiedostoon.
Kirjoittamalla tiedostoja liitetilassa, vaikka palvelin kaatuisi kesken, tietojen johdonmukaisuusongelma voidaan ratkaista uudelleentarkistustyökalulla.
AOF-mekanismin uudelleenkirjoitustila. Ennen kuin AOF-tiedosto kirjoitetaan uudelleen (komennot yhdistetään ja kirjoitetaan uudelleen, kun tiedosto on liian suuri), voit poistaa joitain komentoja (kuten vahingossa käytettyä flushall-komentoa).
puute:
AOF-tiedostot ovat suurempia kuin RDB-tiedostot ja ne palautuvat hitaammin.
Kun tietojoukko on suuri, käynnistyksen tehokkuus on pienempi kuin RDB.
9. Redis yleisiä suorituskykyongelmia ja ratkaisuja
Master on parasta olla kirjoittamatta muistin tilannevedoksia, tallennuskomento ajastaa rdbSave-toiminnon, joka estää pääsäikeen työn Kun tilannekuva on suhteellisen suuri, vaikutus suorituskykyyn on erittäin suuri palvelu keskeytetään ajoittain.
Jos tiedot ovat tärkeitä, Slave ottaa käyttöön AOF-varmuuskopiointitiedot, ja käytäntö on asetettu synkronoimaan yksi data sekunnissa.
Isäntä-orja-replikoinnin nopeuden ja yhteyden vakauden vuoksi on parasta, että isäntä ja orja ovat samassa lähiverkossa.
Yritä välttää orjien lisäämistä jännittyneeseen päätietokantaan.
Älä käytä graafirakennetta master-slave-replikointiin On vakaampaa käyttää yksisuuntaista linkitettyä listarakennetta, joka on: Master