..


Sponsrade länkar

Använd med Cassandra PHPCassa

Artikel skriven av Ciro Cardone
Sidan 1 av 4

Syftet med denna artikel är att visa hur man använder Cassandra i våra PHP-applikationer.
Cassandra är ett projekt inom Facebook med målet att lossa skon från MySQL för att lagra meddelanden i inkorgen.

Cassandra tillhör den familj av produkter nosql, nämligen de mjukvarulösningar som lagrar data med hjälp av SQL-syntax och begreppet relation, så det är inte en RDBMS, men en distribuerad databas, utformad för att fungera i ett kluster och hantera stora mängder data. Istället för att använda begreppen tabell, tupel och relation, Cassandra använder kolumnen synsätt genomföras genom användning av hasch och Array, som lagrar information i form {nyckel: värde}.

Hur utvecklades

Cassandra är nu en Apache-projektet utvecklades java6 därför helt bärbar, med bara ett krav för att installera en JRE.

Cassandra Projekt

Huvuddragen i Cassandra är:

  1. Decentralisering: databasen är fördelat på samma nod i klustret. Det finns flaskhalsar i nätet, eller poäng paus.
  2. Elasticitet: genomströmningen för läs / skriv ökar linjärt med tillägg av nya maskiner (noder) till klustret utan avbrott eller störningar applikationer.
  3. Feltolerans: data automatiskt kopieras på noder. Den har stöd för replikering av flera datacenter. Den misslyckade noder kan bytas ut utan avbrott.
  4. "Hållbarhet" är Cassandra avsedd för applikationer där data förlust är kritisk och bör falla även när hela datacenter löser problemet med dataförlust genom en synkronisering mekanism som grundas på commitlog.
  5. Flexibilitet: Du kan välja uppdateringen för varje strategi för att korrigera situationen kan replikering vara synkron eller asynkron.

För att få alla dessa fördelar har dock utvecklarna tvungna att överge transaktionshantering.

Data Model

Kolumnerna (kolumn) är den lägsta nivån av organisation av data i Cassandra är tupler som innehåller ett namn, ett värde och en tidsstämpel. De är ofta representerade som ett exempel på JSON notation:






 {



  



 "Namn": "Namn",



  



 "Value": "Cyrus"



  



 "Timestamp": 123456789







 }



Namn och värde är kedjor av byte arrangeras som UTF-8 strängar. Den nyckel / värde par är "etiketter" med en tidsstämpel. Cassandra använder timestamp för att se vad det senaste värdet (kom ihåg vi pratar om ett kluster) och sedan för att hantera konflikter.

Kolumnen kolumn är organiserade i familjer, som är besläktade med en tabell i en relationsdatabas. En kolumn familj innehåller en ordnad lista med kolumner som kan refereras av deras namn. Varje kolumn familjen sparas i en separat fil och filen är ordnade i rader (rader).

I kolumnen familjer är i tur grupperade i keyspaces, typiskt en per ansökan. Mindre används är superColumns, speciella kolumner som innehåller i dem andra kolumner.

Den typiska storleken av 4-Cassandra är därför som följer:

 



 Keyspace -> Kolumn Familj -> Familj Rad Kolumn -> Kolumner -> Värderingar

 
I händelse av att vi lägger till SuperColumns:
 



 Keyspace -> Kolumn Super Familj -> Familj Super Kolumn Rad -> Super Kolumner -> Kolumner -> Värderingar

 

Här är JSON representation av en enkel notation:






 Användare {



  



 "Cyrus": {



    



 "Alias": "Ci83"



    



 "Namn": "Cardone"



  



 }







 }



och en mer komplex använder supercolumns





 Användare {



  



 "Cyrus": {



    



 »Färdigheter": {



      



 "Java": "Great"



      



 "PHP", "Excellent"



    



 },



    



 "Registry": {



      



 "Alias": "Ci83"



      



 "Namn": "Cardone"



    



 }



  



 }







 }



I keyspace "Användare" definieras som en nyckel "Cyrus" supercolonne med två "kompetens" och "register" som alla har nyckel / värde par.

I samma kategori ...
E-Learning
Linux (kurs) Linux (kurs)
Komplett av öppen källkod-system. Från 49 €.
MySQL (kurs) MySQL (kurs)
Hantering av öppen källkod databas. Från 39 €.
PHP (kurs) PHP (kurs)
Fullständig kurs för att skapa dynamiska webbplatser. Från 49 €.
Sponsrade länkar