Teknologian jakaminen

Redis konfigurointi ja optimointi

2024-07-12

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

1. Relaatiotietokannat ja ei-relaatiotietokannat

(1) Relaatiotietokanta

Relaatiotietokanta on strukturoitu tietokanta, joka on luotu relaatiomallitietokantaan ja luotu tietuesuuntautuneeksi.

Yleiset relaatiotietokannat: Oracle, MySQL, SQL Server, Microsoft Access, DB2.

(2) Ei-relaatiotietokanta

NOSQL=Ei vain SQL on yleinen termi ei-relaatiotietokantoille. Tallennusmenetelmästä, tallennusrakenteesta ja käyttöskenaarioista riippuen sitä kutsutaan ei-relaatiotietokannaksi. Muita tietokantoja kuin valtavirran relaatiotietokantoja voidaan kutsua ei-relaatiotietokannoiksi.

Yleiset ei-relaatiotietokannat: Redis, MongoDB, Hbase, CouhDB.

2. Redisin perusteet

(1) Johdatus Redikseen

Redis on avoimen lähdekoodin Nosql-tietokanta, joka on kirjoitettu C-kielellä. Se toimii muistin perusteella ja tukee pysyvyyttä. Sen porttinumero on 6379.

(2) Redisin edut

  1. Siinä on korkea tiedonluku- ja kirjoitusnopeus.
  2. Tukee monipuolisia tietotyyppejä. avainarvo, merkkijonot, luettelot, tiivisteet, joukot, järjestetyt joukot.
  3. Tukee tietojen pysyvyyttä. Tiedot tallennetaan levylle, ja ne voidaan ladata ja käyttää uudelleenkäynnistyksen jälkeen.
  4. Atomi.
  5. Tukee tietojen varmuuskopiointia.

3. redis-asennus

1. Asenna Redis

[root@localhost ~]# systemctl pysäyttää palomuuri

[root@localhost ~]# setenforce 0

[root@localhost ~]# yum -y asennus gcc* zlib-devel

[root@localhost ~]#tar xvzf redis-4.0.9.tar.gz

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

[root@localhost redis-4.0.9]# merkki

Ilmoitus:

Virheilmoitus luodaan, kun make,

ratkaisu:
Ratkaisu 1: Käytä parametria make MALLOC=libc määrittääksesi libc:lle käännettävän muistin varaajan
Ratkaisu 2: tee puhtaaksi && tee disclean

[root@localhost redis-4.0.9]# make PREFIX=/usr/local/redis install
[root@localhost utils]# ln -s /usr/local/redis/bin/* /usr/local/bin/

[root@localhost redis-4.0.9]# cd utils/
Yksi niistä: install_server.sh on alustuskomentosarja

[root@localhost utils]# ./install_server.sh
Valitse redis-suoritettava polku [] /usr/local/redis/bin/redis-server(antaa suoritettavan polun)

Katso prosessin ja palvelun ohjaus
[root@localhost utils]# netstat -anpt | grep redis
tcp 0 0 127.0.0.1:6379 0.0.0.0:* KUUNTELU 5360/redis-palvelin 1
[root@localhost utils]# /etc/init.d/redis_6379 stop(redis on suljettu)
[root@localhost utils]# /etc/init.d/redis_6379 aloitus(päällä)
[root@localhost utils]# /etc/init.d/redis_6379 status (osavaltio)

Konfigurointiparametrien muuttaminen
[root@localhost ~]#vim /etc/redis/6379.conf
sitoa 127.0.0.1 192.168.10.101//Kuunteleva isäntäosoite
portti 6379 //portti
demonisoida kyllä //Ota demoniprosessi käyttöön
pidfile /var/run/redis_6379.pid //Määritä PID-tiedosto
lokitason ilmoitus//lokitaso
lokitiedosto /var/log/redis_6379.log//Määritä lokitiedosto

[root@localhost~]#/etc/init.d/redis_6379 uudelleenkäynnistys

2.redis komentotyökalu

[root@localhost utils]# redis-cli(Paikallinen kirjautuminen)
[root@localhost utils]# redis-cli -h 192.168.10.101 -p 6379(etäkirjautuminen)
192.168.10.101:6379> ping(Havaitsemispalvelu toimii normaalisti)
PONG

3: redis-benchmark-testaustyökalu

redis-benchmark on virallinen Redis-suorituskyvyn testaustyökalu, jolla voidaan tehokkaasti testata Redis-palvelujen suorituskykyä.

  • -h: Määritä palvelimen isäntänimi;
  • -p: Määritä palvelimen portti;
  • -s: Määritä palvelinpistoke;
  • -c: Määritä samanaikaisten yhteyksien määrä;
  • -n: Määritä pyyntöjen määrä;
  • -d: Määritä SET/GET-arvon datakoko tavuina;
  • -k:1 = pysy hengissä 0 = yhdistä uudelleen;
  • -r: SET/GET/INCR käyttää satunnaisia ​​avaimia, SADD käyttää satunnaisia ​​arvoja;
  • -P: siirto putken kautta<numreq> kysyä;
  • -q: Pakota lopettamaan uudelleen. Vain kysely/sekuntiarvot näytetään;
  • --csv: tulostus CSV-muodossa;
  • -l: Luo silmukka ja suorita testi pysyvästi;
  • -t: Suorita vain pilkuilla eroteltu testikomentojen luettelo;
  • -I: Lepotila. Avaa vain N vapaata yhteyttä ja odota.
  • (1) Testipyynnön suorituskyky

    [root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -c 100 -n 100000

    Huomautus:

    -h: Määritä palvelimen isäntänimi;

  • -p: Määritä palvelimen portti;

    -c: Määritä samanaikaisten yhteyksien määrä;

    -n: Määritä pyyntöjen määrä;

(2) Testaa pääsyn suorituskykyä

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

Huomautus:

-h: Määritä palvelimen isäntänimi;

-p: Määritä palvelimen portti;

-d: Määritä SET/GET-arvon datakoko tavuina;

-q: Pakota lopettamaan uudelleen. Vain kysely/sekuntiarvot näytetään;

  1. 4. Redis-tietokannan yleiset komennot

set tallentaa datan komentomuoto set key value

get Get data komentomuoto get key

(1) Näppäimiin liittyvät komennot

1. Lisää avain-arvo-pareja

127.0.0.1:6379&gt; asettaa 1 1
OK
127.0.0.1:6379&gt; sarja 2 2
OK
127.0.0.1:6379&gt; sarja 3 3
OK

2. Näytä kaikki tietokannan arvot

127.0.0.1:6379&gt; avaimet *
1) "3"
2) "1"
3) "2"

3. Tarkastele tietokannassa v-kirjaimella alkavia tietoja
127.0.0.1:6379>AVAimet v*

4. Tarkastele tietokannassa olevia tietoja, jotka alkavat v:llä

127.0.0.1:6379>AVAimet v?

5.Tarkastele nykyistä tietokantaa sovelluksella v alkuSeuraava sisältää mitkä tahansa kaksi numeroa tietoja

127.0.0.1:6379>AVAimet v??

(2) on olemassa

Selvitä, onko arvo olemassa.

127.0.0.1:6379>olemassa f5Selvitä, onko f5 olemassa

(kokonaisluku) 1 Tulos on 1, mikä osoittaa, että f5-näppäin on olemassa

Kuten

(kokonaisluku) 0 Tulos on 0, mikä tarkoittaa, että f5-näppäintä ei ole olemassa

(3)del

del Komento voi poistaa määritetyn avain

127.0.0.1:6379> del v5 Poista v5 tietokannasta

(kokonaisluku) 1

127.0.0.1:6379>hanki v5

(nolla)

(4) tyyppi

käyttää tyyppi Komento voidaan saada avain vastaava arvo arvon tyyppi

127.0.0.1:6379>tyyppi k1

merkkijono

Huomautus:

Redisin tukemat tietotyypit

  • Merkkijono: Merkkijono on yksinkertaisin tyyppi, joka on tavallinen set and get, jota käytetään avainarvojen välimuistiin.
  • Hash: Hash-algoritmi, rakenne, joka on samanlainen kuin kartta.
  • Lista: Lista on järjestetty luettelo. Voit käyttää luetteloa joidenkin listatyyppisten tietorakenteiden, kuten faniluetteloiden, artikkelien kommenttiluetteloiden, tallentamiseen.
  • Joukko: Joukko on järjestämätön kokoelma, joka poistaa automaattisesti kaksoiskappaleet.
  • Lajiteltu joukko: Lajiteltu joukko on lajiteltu joukko, josta poistetaan kaksoiskappaleet, mutta joka voidaan lajitella sisään kirjoitettaessa, pisteet annetaan ja lajitellaan automaattisesti tuloksen mukaan.

(5) nimetä uudelleen

nimeä uudelleen Komento on olemassa olevalle avain nimeä uudelleen

Varsinaisessa käytössä on suositeltavaa käyttää olemassa Komento nähdäksesi kohteen avain on olemassa, ja päätä sitten, suoritetaanko se nimeä uudelleen komento välttääksesi tärkeiden tietojen ylikirjoituksen.

127.0.0.1:6379>nimeä uudelleen v22 v2 Nimeä v22 uudelleen v2:ksi

OK

(6) renamenx

renamenx Komennon tehtävänä on muokata olemassa olevaa avain Nimeä uudelleen ja tarkista, onko uusi nimi olemassa.

käyttäärenamenx Kun komento nimetään uudelleen, jos kohde avain Jos se on olemassa, sitä ei nimetä uudelleen.

(7) db-koko

db-koko Komennon tarkoitus on tarkastella nykyistä tietokantaa avain Lukumäärä.

127.0.0.1:6379> db-koko

(kokonaisluku) 5

5. Yleiset komennot useille tietokannoille

(1) Vaihtaminen useiden tietokantojen välillä

Redis Mukana oletuksena ilman muutoksia 16 tietokanta, tietokannan nimi on numero 0-15 nimettävä järjestyksessä

(1)Vaihda sarjanumeroon 10 tietokanta

127.0.0.1:6379>valitse 10

OK

(2)Vaihda sarjanumeroon 15 tietokanta

127.0.0.1:6379[10]>valitse 15

OK

(3)Vaihda sarjanumeroon 0 tietokanta

127.0.0.1:6379[15]>valitse 0

(2) Tietojen siirtäminen useiden tietokantojen välillä

127.0.0.1:6379>aseta k1 100 Luo k1 tietokantaan 0

OK

127.0.0.1:6379>hanki k1

"100"

127.0.0.1:6379>Siirrä k1 1  //Siirrä k1 tietokannassa 0 tietokantaan 1

(kokonaisluku) 1

127.0.0.1:6379>valitse 1   //Vaihda kohdetietokantaan 1

OK

127.0.0.1:6379[1]>hanki k1   //Näytä siirretyt tiedot

"100"

127.0.0.1:6379[1]> valitse 0

OK

127.0.0.1:6379> hanki k1         //K1:n arvoa ei voi tarkastella tietokannassa 0

(nolla)

(3) Poista tiedot tietokannasta

Tyhjennä nykyiset tietokantatiedot käyttämällä FLUSHDB

Komentojen toteuttaminen tyhjennä kaikki tietokannan tiedot FLUSHALL Komennon toteutus.

6. Redis sinnikkyys

Redis Kaikki tiedot tallennetaan muistiin ja tallennetaan sitten asynkronisesti levylle ajoittain.(Tätä kutsutaanPuolipysyvä tila”)Voit myös kirjoittaa jokaisen tietomuutoksen kohtaan a liitä vain tiedosto (aof)sisään(Tätä kutsutaanTäysi pysyvyystila”)

koska Redis Kaikki tiedot tallennetaan muistiin, jos pysyvyyttä ei ole määritetty,Redis Uudelleenkäynnistyksen jälkeen kaikki tiedot menetetään.Siksi on tarpeen ottaa käyttöönRedis Pysyvyystoiminto tallentaa tiedot levylle Redis Uudelleenkäynnistyksen jälkeen tiedot voidaan palauttaa levyltä.Redis Pysyvyydelle tarjotaan kaksi menetelmää, yksi on RDBRedis-tietokanta Pysyvyys (periaate on ReidsMuistissa olevien tietokantatietueiden ajastettu vedos (kaatopaikka)levylle RDB sinnikkyys), toinen on AOFliittää vain tiedostoPysyvyys (periaate on Reids Toimintaloki kirjoitetaan tiedostoon liitteenä).

Ero RDB:n ja AOF:n välillä

ROB kirjoittaa tiedot levylle määritetyn aikavälin kuluessa. Se kirjoittaa tiedot ensin väliaikaiseen kansioon. Se korvaa edellisen tiedoston ja tallentaa sen binääripakkauksella.

AOF tallentaa kaikki palvelimen kirjoitus- ja poistotoimenpiteet lokimuotoon. Kyselytoimintoja ei tallenneta, vaan ne tallennetaan tekstimuodossa.

 

RDB:n ja AOF:n edut ja haitat

RDB:n edut:

RDB on kompakti, pakattu binääritiedosto, joka edustaa tilannekuvaa Redis-tiedoista tietyllä hetkellä. Se sopii erittäin hyvin varmuuskopiointiin, täydelliseen kopiointiin ja muihin skenaarioihin. Suorita esimerkiksi bgsave-varmuuskopio 6 tunnin välein ja kopioi RDB-tiedosto etäkoneeseen tai tiedostojärjestelmään katastrofipalautusta varten.

Tietojen palautus on nopeaa.

Maksimoi suorituskyky

Korkea käynnistysteho

RDBpuute:

Tiedot, joita ei tallennettu ennen sammutusta, menetetään.

       RDB valmistuu haarukan lapsiprosessin kautta, mikä kuluttaa resursseja.

AOF:n edut:

Tietojen kestävyys on korkea

Liitä tilassa lokitiedoston sisältö ei tuhoudu, vaikka olisi seisokki.

Uudelleenkirjoitusmekanismi voidaan käynnistää tietoturvan suojaamiseksi.

AOF:n haitat:

AOF-tietojen palautusnopeus on hidas

AOF:n toiminnan tehokkuus on alhainen

Kriteerit näiden kahden välillä valinnalle:

Uhraa jonkin verran suorituskykyä vastineeksi paremmasta välimuistin johdonmukaisuudesta (AOF),

Kun kirjoitustoiminnot ovat toistuvia, älä ota varmuuskopiointia käyttöön vastineeksi paremmasta suorituskyvystä ja odota manuaalista käyttöä. Tallentaa kun, tee varmuuskopio uudelleen (RDB

Huomautus:

Jos rediesin on ladattava pysyvyystiedosto uudelleenkäynnistyksen jälkeen,etusijallaAOF-tiedostot valitaan.

Jos RDB on ensin käytössä ja sitten AOF käytössä, ja RDB säilytetään ensin, AOF korvaa RDB-tiedoston sisällön.

7. Redis pysyvyyskokoonpano

(1) RDB-pysyvyyskokoonpano

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

Avata 6379.conf Hae tiedoston jälkeen Tallentaa, näet kokoonpanotiedot alla olevan kuvan mukaisesti.

  • tallenna 900 1: 900 sekunnin (15 minuutin) jälkeen, jos vähintään yksi avain muuttuu, tyhjennä muistin tilannekuva.
  • tallenna 300 10: 300 sekunnin (5 minuutin) jälkeen, jos vähintään 10 näppäintä on muuttunut, tyhjennä muistin tilannekuva.
  • tallenna 60 10000: 60 sekunnin (1 minuutin) jälkeen, jos vähintään 10 000 näppäintä on muuttunut, tyhjennä muistin tilannekuva.
  • dbfilename dump.rdb: RDB-tiedoston nimi ##254 rivi
  • dir /var/lib/redis/6379: RDB-tiedoston polku ##264 rivi
  • rdb-pakkaus kyllä: pakataanko rivi ##242

(2) AOF:n pysyvyyskokoonpano

olla olemassa Redis Asetustiedostossa on kolme synkronointimenetelmää, ne ovat:

  • liitteenä kylläOta AOF-pysyvyys käyttöön (oletus on ei) ##673-rivi
  • appendfilename "appendonly.aof" AOF-tiedoston nimi ##677 rivi
  • # appendfsync aina
  • appendfsync everysec
  • # appendfsync no

aina: synkroninen pysyvyys, aina kun tiedot muuttuvat, se kirjoitetaan levylle välittömästi ##702 rivi

everysec: Suositellaan oletuksena, tallenna asynkronisesti joka sekunti (oletusarvo)

ei: Ei synkronointia, joten käyttöjärjestelmä päättää synkronointitavan

  • aof-load-trumpated kyllä ​​##769行

Ohita viimeinen mahdollisesti ongelmallinen ohje

[root@localhost ~]#/etc/init.d/redis_6379 uudelleenkäynnistys

8. Suorituskykyongelmat

(1) Näytä muistitiedot

192.168.9.236:7001> tieto muisti

käytetty_muisti:1210776 Käytetyn muistin koko tavuina
käytetty_muisti_ihminen: 1,15 miljNäytetään yksiköillä M
used_memory_rss:7802880Kuinka paljon muistia redis vie käyttöjärjestelmän näkökulmasta?
Used_memory_rss_ihminen:7,44MNäyttö yksiköillä
suurin muisti: 1073741824Muistin enimmäiskoko
suurin muisti_ihminen: 1.00G Näyttö yksiköillä

(2) Kierrätysstrategia

maxmuisti-politiikka: Kierrätysstrategia

 volatile-lru: se sallii Redis Valitse koko tietojoukosta vähiten käytetty avain Poistaa

 haihtuva-ttlEliminoi avaimen vanhenemisajan mukaan 

 haihtuva-satunnainen: Valitse satunnaisesti poistettavat tiedot tietokokoelmasta asetetulla vanhenemisajalla;

 allkeys-lru:käyttää LRU Algoritmit poistavat tiedot kaikista tietojoukoista;

 kaikki avaimet-satunnainen: Valitse satunnaisesti tiedot poistettaviksi tiedonkeruusta;

 häätö: Poista tietojen poistaminen käytöstä (oletusarvo)

Aseta avaimen vanhenemisaika

127.0.0.1:6379>vanhenee v1 10 v1:n vanhenemisaika on 10 sekuntia

Huomautus:

kun Redis Se on hankittava takaisin muistipaineen vuoksi avain tunnin,Redis Ensimmäinen harkinta ei ole kierrättää vanhimpia tietoja, vaan vähiten käytettyjä tietoja. avain tai vanhentumassa avain Valitse yksi satunnaisesti avain, poistettu tietojoukosta