..


Sponsorerede links

Brug med Cassandra PHPCassa

Artikel skrevet af Ciro Cardone
Side 1 af 4

Formålet med denne artikel er at vise, hvordan man bruger Cassandra i vores PHP-applikationer.
Cassandra er et projekt inden for Facebook med det mål at trække sig fra MySQL til at gemme beskeder i indbakken.

Cassandra tilhører familien af produkter NoSQL, nemlig dem softwareløsninger, der lagrer data ved hjælp af SQL-syntaks og begrebet forholdet, så det er ikke et databaseprogram, men en distribueret database, der er designet til at arbejde i en klynge og til at håndtere store mængder data. I stedet for at bruge begreberne bordet, tupel og relation, der gennemføres Cassandra bruger kolonne-orienteret tilgang gennem brug af hash og Array, som gemmer oplysninger i form {nøgle: værdi}.

Hvordan udvikles

Cassandra er nu en Apache-projektet har udviklet java6 derfor helt transportable, at der kun er krav om at installere et JRE.

Cassandra Project

De vigtigste elementer i Cassandra er:

  1. Decentralisering: databasen er fordelt på samme node i klyngen. Der er flaskehalse i netværket, eller bryde point.
  2. Elasticitet: throughput for læse / skrive stiger lineært med tilføjelse af nye maskiner (noder) til klyngen uden nedetid eller afbrydelse af applikationer.
  3. Fault Tolerance: Data er automatisk replikeres på noderne. Det har støtte til replikering af flere datacentre. De mislykkede noder kan udskiftes uden nedetid.
  4. "Holdbarhed" Cassandra er designet til applikationer, hvor tab af data er kritisk og bør falde, selv når hele datacentret løser problemet med tab af data via en synkronisering mekanisme baseret på commitlog.
  5. Fleksibilitet: Du kan vælge opdateringen for hver strategi for at rette op på situationen, kan replikation være synkron eller asynkron.

For at få alle disse fordele, men har udviklerne nødt til at opgive transaktionen ledelse.

Datamodellen

De kolonner (kolonne) er det laveste niveau af organisering af data i Cassandra, er tupler der indeholder et navn, en værdi og et tidsstempel. De er ofte repræsenteret som et eksempel på JSON notation:






 {



  



 "Navn": "Navn",



  



 "Value": "Cyrus"



  



 "Time Stamp": 123456789







 }



Navn og værdien er arrays af bytes indrettet som UTF-8 strenge. Den nøgle / værdi par er "etiketter som" med et tidsstempel. Cassandra bruger tidsstempel at se, hvad den seneste værdi (husk vi taler om en klynge) og derefter til at håndtere konflikter.

Kolonnen kolonne er organiseret i familier, som er beslægtet med en tabel i en relationel database. En kolonne familie indeholder en ordnet liste over kolonner, der kan refereres til ved deres navn. Hver kolonne familie er gemt i en separat fil, og filen er arrangeret i rækker (rækker).

Kolonnen familier er igen inddelt i keyspaces, typisk et per applikation. Mindre anvendes, er superColumns, særlige kolonner, der indeholder i dem andre kolonner.

Den typiske størrelse på 4-Cassandra er derfor som følger:

 



 Keyspace -> Kolonne Family -> Familie Række Kolonne -> Kolonner -> Værdier

 
I tilfælde af, at vi tilføjer SuperColumns:
 



 Keyspace -> Kolonne Super Family -> Familie Super Kolonne Række -> Super Kolonner -> Kolonner -> Værdier

 

Her er JSON repræsentation af en simpel notation:






 Brugere {



  



 "Cyrus": {



    



 "Brugernavn": "Ci83"



    



 "Navn": "Cardone"



  



 }







 }



og en mere kompleks bruger supercolumns





 Brugere {



  



 "Cyrus": {



    



 "Færdigheder": {



      



 "Java": "Great"



      



 "PHP", "Excellent"



    



 },



    



 "Registry": {



      



 "Brugernavn": "Ci83"



      



 "Navn": "Cardone"



    



 }



  



 }







 }



I keyspace "Brugere" er defineret som en nøgle "Cyrus" supercolonne med to "færdigheder" og "register", som hver indeholder nøgle / værdi par.

I den samme kategori ...
E-Learning
Linux (Kursus) Linux (Kursus)
Komplet guide til open source-system. Fra 49 €.
MySQL (Kursus) MySQL (Kursus)
Forvaltning af open source-database. Fra 39 €.
PHP (Kursus) PHP (Kursus)
Fuld kursus for at skabe dynamiske web-sites. Fra 49 €.
Sponsorerede links