Cum de a adăuga interogări nosql la mysql, integrat cu memcached, pe ubuntu 14

Cum se utilizează memcached și funcția sa ca server independent, împreună cu MySQL, a fost deja scris într-o varietate de articole excelente - de exemplu, instalarea și utilizarea Memcache pe Ubuntu 14.04. Dar, ca server independent, memcached efectuează o funcție intermediară, precedată de nivelul de acces al clientului MySQL și funcționează numai cu acele informații care sunt în memorie, fără posibilitatea stocării sale permanente. Acest lucru vă permite să efectuați sarcini, cum ar fi cache rezultatele interogărilor repetate MySQL, care salvează resurse și optimizează activitatea de site-uri ocupat.







Dar în acest articol, vom vorbi despre altceva. Memcached va fi instalat ca plug-in MySQL și integrat în MySQL. Acest lucru va crea un nivel de acces în stilul NoSQL pentru a gestiona informațiile direct în tabelele standard MySQL InnoDB. Așa cum va fi clar din articol, aceasta oferă o serie de avantaje.

Informații de bază

Pentru a înțelege ce este în discuție în acest articol, trebuie să aveți cel puțin o idee generală despre ce sunt NoSQL și memcached. NoSQL funcționează cu informații sub formă de elemente "cheie-valoare (valori)". Aceasta este o abordare mai simplă decât standardul SQL. În plus, oferă o mai mare eficiență și o scalare mai bună, lucru deosebit de important pentru lucrul cu cantități mari de informații (Big Data).

Dar, pentru a înlocui standardul SQL, singura lucrare bună a NoSQL nu este suficientă. Datorită simplității sale, NoSQL nu este potrivit pentru lucrul cu date structurate care conțin relații complexe. Prin urmare, NoSQL poate fi numit o adăugare importantă a SQL, mai degrabă decât înlocuirea acesteia.

În ceea ce privește memcached, se poate numi o implementare populară a NoSQL. Acesta este un software foarte rapid și, așa cum rezultă din numele său, are mecanisme de caching excelente. De aceea memcached este o alegere excelentă pentru a aduce stilul NoSQL în stilul tradițional MySQL.

Veți avea nevoie, de asemenea, de o cunoaștere de bază a protocolului memcached. Lucrările memorate cuprind elemente care cuprind următoarele părți:

  • Cheia este o valoare alfanumerică care este cheia pentru accesarea valorii unui element.
  • Valoare - orice date în care este stocată cea mai importantă parte a datelor transmise.
  • Steag - aceasta este, de obicei, valoarea folosită pentru a specifica parametrii suplimentari legați de valoarea de bază. De exemplu, steagul trebuie să utilizeze sau să nu folosească compresia.
  • Timpul de expirare - timpul de expirare în secunde. Nu uitați că memcached-ul a fost inițial destinat caching-ului.
  • Valoarea CAS este un identificator unic pentru fiecare element.

cerinţe

Testarea descrisă în acest articol a fost efectuată pe Ubuntu 14.04. Procesul de instalare și configurare descris aici va fi similar cu procesul de instalare și configurare de pe alte sisteme de operare sau versiuni ale acestora, dar comenzile și locația fișierelor de configurare pot fi diferite.

Veți avea nevoie de următoarele:

  • Instalat recent Ubuntu 14.04
  • Utilizator non-root cu privilegii sudo

Toate comenzile descrise în acest articol trebuie să fie executate de un utilizator non-root. Dacă comanda necesită acces root, va fi precedată de sudo. Dacă nu sunteți deja configurat, accesați aici: Configurarea inițială a serverului cu Ubuntu 14.04.

Pasul 1 - Instalarea MySQL 5.6

Plug-in-ul memcached din MySQL este disponibil în versiunile MySQL de mai sus 5.6.6. Aceasta înseamnă că nu veți putea utiliza pachetul MySQL (versiunea 5.5) din depozitul standard Ubuntu 14.04. În schimb, procedați în felul următor:

  1. Adăugați depozitul oficial MySQL
  2. Instalați de pe acesta un server MySQL, client și biblioteci

Mai întâi, accesați pagina magazinului MySQL și descărcați pachetul care va adăuga spațiul de stocare MySQL în Ubuntu 14.04. De asemenea, puteți să descărcați pachetul direct pe serverul dvs.:

Apoi, instalați-l cu dpkg:

Când executați această comandă, apare o casetă de dialog cu două întrebări:

  1. Ce produs MySQL doriți să configurați? Server de răspuns.
  2. Ce versiune a serverului doriți să primiți? Răspundeți la mysql-5.6.

După ce răspundeți la aceste două întrebări, veți fi redirecționat (ă) la prima ediție a produsului pe care doriți să-l instalați. Faceți clic pe "Aplicați" din partea de jos pentru a confirma alegerea dvs. și ieșiți din caseta de dialog.

Acum, că aveți un nou depozit MySQL, trebuie să actualizați cache-ul apt. și anume informații despre pachetele disponibile pentru instalare pe Ubuntu. Astfel, atunci când instalați MySQL, acesta va fi extras din nou depozit. Pentru a actualiza cache-ul apt, executați următoarea comandă:

Acum puteți instala MySQL 5.6 pe Ubuntu 14.04 folosind următoarea comandă:







Când executați această comandă, vi se va cere să setați parola de root (parola de administrator) pentru MySQL. Pentru comoditate, nu puteți seta o parolă în acest moment, și la prompt parola, pur și simplu apăsați ENTER. Dar atunci când decideți să utilizați acest server, MySQL pentru instalarea în condiții de siguranță, se recomandă să se execute comanda sudo mysql_secure_installation și setați parola de root.

După finalizarea procesului de instalare, veți avea o versiune a serverului MySQL 5.6, un client de linie de comandă și bibliotecile necesare. Puteți testa sistemul prin rularea clientului cu comanda:

Pentru a seta o parolă, trebuie să executați următoarea comandă și să introduceți parola de root MySQL când vi se solicită:

Veți vedea următoarele:

Păstrați în fereastra MySQL (terminalul client), creați o nouă bază de date numită test:

Această bază de date va fi necesară pentru teste suplimentare. Pentru a ieși din clientul MySQL, tastați:

În cele din urmă, trebuie să instalați și un pachet pentru notificări asincrone - libevent-dev. Pentru aceasta, executați comanda:

Pasul 2 - Instalați plug-in-ul memcached pe MySQL

Înainte de a instala pluginul memcached, trebuie să rulați interogări în fișierul /usr/share/mysql/innodb_memcached_config.sql. Porniți clientul MySQL:

sau, dacă ați setat o parolă:

Cu această comandă veți crea toate setările necesare pentru pluginul din baza de date innodb_memcache. și introduceți, de asemenea, câteva date de testare în noua bază de date de testare creată.

Apoi, instalați plug-in-ul memcached din terminalul MySQL utilizând următoarea comandă:

Ieșiți din sesiunea MySQL:

Deci, ați instalat plug-in-ul memcached, localizat în / usr / lib / mysql / plugin / folder în Ubuntu 14.04. Acest fișier este disponibil numai în MySQL 5.6 și versiuni ulterioare.

După linia [mysqld], adăugați o linie nouă:

Această comandă va configura ascultătorul pentru plug-in memcached pe portul 11222. Este activ numai pentru IP 127.0.0.1. Aceasta înseamnă că numai clienții de pe serverul dvs. se pot conecta. Dacă nu specificați IP (-l 127.0.0.1), atunci absolut orice client se poate conecta fără obstacole, ceea ce reprezintă un risc serios de securitate. Pentru a afla mai multe despre securitatea plug-in-ului memcached, puteți să-i revizuiți documentația de securitate.

Pentru a începe un nou proces de ascultare pentru plug-in-ul memcached, reporniți serverul MySQL cu comanda:

Pasul 3 - Testarea pluginului memcached

Pentru a verifica dacă instalarea a avut succes, executați următoarea comandă în clientul MySQL (porniți clientul cu mysql -u root sau mysql -u root -p):

Dacă totul funcționează corect, veți vedea următoarele (cel mai probabil la sfârșitul listei de pluginuri):

În caz contrar, asigurați-vă că utilizați MySQL 5.6 (mai mare decât 5.6.19 deoarece această versiune nu a funcționat) sau mai mare și că ați urmat exact procesul de instalare descris mai sus. De asemenea, puteți încerca să vă conectați la interfața noului plugin memcached prin telnet de pe serverul dvs.:

Dacă vă conectați cu succes la linia de ieșire, veți vedea:

Pentru a verifica modul în care funcționează conexiunea, puteți executa o comandă, cum ar fi statistici. pentru a vedea statisticile. Pentru a închide fereastra, apăsați simultan CTRL și] de pe tastatură. Apoi tastați quit pentru a ieși din clientul Telnet.

Telnet este cel mai simplu mod de conectare la pluginul memcached și la datele MySQL în sine. Această metodă este excelentă pentru testare, dar dacă decideți să o utilizați la nivel profesional, ar trebui să citiți bibliotecile disponibile pentru limbile de programare populare (de exemplu, PHP și Python).

Pasul 4 - Executarea interogărilor NoSQL în MySQL prin pluginul memcached

Dacă reveniți la partea din acest articol care descrie instalarea pluginului memcached, veți vedea că am executat instrucțiunile din fișierul /usr/share/mysql/innodb_memcached_config.sql. Acești operatori au creat un nou tabel demo_test în baza de date de testare. Tabelul demo_test are următoarele coloane care corespund protocolului memcached:

  • c1 corespunde câmpului cheie.
  • c2 corespunde câmpului valoare (valoare).
  • c3 corespunde câmpului de pavilion (pavilion).
  • c4 corespunde câmpului CAS.
  • c5 corespunde expirării câmpului.

Folosind acest tabel demo_test vom efectua testarea. Mai întâi, deschideți baza de date / tabela prin clientul MySQL cu următoarea comandă:

Sau dacă setați o parolă pentru MySQL:

Ar trebui să existe deja o intrare în tabela demo_tes t:

Rezultatele ar trebui să arate astfel:

Ieșiți din sesiunea MySQL:

Acum creați a doua intrare folosind interfața NoSQL memcached și telnet. Reconectați la stația de lucru prin portul TCP 11222:

Apoi utilizați următoarele construcții sintactice:

Rețineți că componenta valorii trebuie să fie pe următoarea linie. Mai mult, atunci când se lucrează în modul descris mai sus pentru fiecare înregistrare, este necesar să se indice lungimea în biți ca valoare.

De exemplu, creați un element nou (intrare în tabel) cu tasta nouă. valoarea 0 pentru pavilion și o valoare de 0 pentru expirare (fără dată de expirare). Valoarea este de 12 biți în lungime.

set newkey 0 0 12 NewTestValue

Desigur, puteți extrage valori prin această interfață NoSQL. Acest lucru se poate face cu comanda get. după care trebuie să specificați numele cheii pe care doriți să o extrageți. Fără a părăsi sesiunea Telnet, tastați:

Rezultatul ar trebui să arate astfel:

Comenzile de mai sus sunt setate și funcționează pentru orice server memcached. Aici am dat doar câteva exemple simple despre cum să inserați și să extrageți înregistrări în stilul NoSQL.

În tabel trebuie să apară o nouă intrare:

În acest moment, puteți să întrebați în cazul în care pluginul memcached cunoaște baza de date și tabelul de conectat și modul de afișare a informațiilor în coloanele din tabel. Răspunsul constă în baza de date innodb_memcache și în containerele de tabelă.

Rulați următoarea instrucțiune select:

Veți vedea următoarele:

Dacă doriți să aflați mai multe despre cum să creați diferite mapări și să aflați caracteristicile avansate ale plug-in-ului memcached, consultați pagina despre dispozitivul intern al pluginului memcached.

Avantajele integrării MySQL cu pluginul memcached

Informațiile și exemplele de mai sus evidențiază câteva avantaje importante ale integrării MySQL cu NoSQL prin pluginul memcached:

Toate datele dvs. (MySQL și NoSQL) sunt stocate într-un singur loc. Nu este nevoie să instalați și să mențineți software suplimentar pentru date NoSQL. Persistența, recuperarea și replicarea datelor NoSQL sunt posibile datorită motorului puternic lnnoDB.

Un nivel incredibil de rapid de acces la datele memcached poate fi utilizat pentru a lucra cu cantități mari de informații (comparați cu lucrul cu un client MySQL mai lent).

Gestionarea datelor NoSQL se poate face prin interfața și sintaxa MySQL. Deci, puteți include date NoSQL în interogări SQL mai complexe (de exemplu, operatori de integrare în stânga).

concluzie







Articole similare

Trimiteți-le prietenilor: