..


Gesponsorde links

Gebruik met Cassandra PHPCassa

Artikel geschreven door Ciro Cardone
Pagina 1 van 4

Het doel van dit artikel is te laten zien hoe Cassandra gebruiken in onze PHP-applicaties.
Cassandra is een project binnen Facebook met het doel van het losmaken van MySQL om berichten op te slaan in het Postvak IN.

Cassandra behoort tot de familie van producten nosql, namelijk die software-oplossingen voor de opslag van gegevens met behulp van SQL syntax en het concept van de relatie, dus het is niet een RDBMS, maar een gedistribueerde database, ontworpen om te werken in een cluster en om grote hoeveelheden te beheren gegevens. In plaats van het gebruik van de concepten van de tafel, tuple en relatie, Cassandra maakt gebruik van kolom-aanpak uitvoer gelegd door middel van het gebruik van Hash en Array, die de informatie opslaat in de vorm {key: value}.

Hoe ontwikkelde

Cassandra is nu een Apache-project ontwikkeld java6 dan ook volledig draagbaar, met slechts een eis om een ​​JRE te installeren.

Cassandra Project

De belangrijkste kenmerken van Cassandra zijn:

  1. Decentralisatie: de database wordt gedistribueerd op hetzelfde knooppunt binnen het cluster. Er zijn knelpunten in het netwerk, of breken punten.
  2. Elasticiteit: de doorvoersnelheid voor lezen / schrijven lineair toeneemt met de toevoeging van nieuwe machines (nodes) aan het cluster zonder downtime of verstoring van de applicaties.
  3. Fault Tolerance: Gegevens worden automatisch gerepliceerd op de knooppunten. Het heeft ondersteuning voor de replicatie van meerdere datacenters. De mislukte nodes kan worden vervangen zonder downtime.
  4. "Duurzaamheid" Cassandra is ontworpen voor toepassingen waar het verlies van gegevens is van cruciaal belang en moet zelfs dalen als het gehele datacenter lost het probleem van dataverlies door een synchronisatie mechanisme op basis van commitlog.
  5. Flexibiliteit: u kunt de update voor elke strategie kiezen om de situatie te corrigeren, replicatie kan synchroon of asynchroon.

Om al deze voordelen, echter, hebben de ontwikkelaars moesten de transactie beheer te verlaten.

De Data Model

De kolommen (kolom) zijn de laagste niveau van de organisatie van de gegevens in Cassandra, zijn tupels dat een naam, een prijs en een tijdstempel bevatten. Ze worden vaak voorgesteld als een voorbeeld van de JSON notatie:






 {



  



 "Naam": "Naam",



  



 "Value": "Cyrus"



  



 "Timestamp": 123456789







 }



Naam en waarde zijn arrays van bytes ingericht als UTF-8 strings. De sleutel / waarde paar is "labels als" met een tijdstempel. Cassandra maakt gebruik van de timestamp te zien wat de meest recente waarde (denk eraan we hebben het over een cluster) en vervolgens om conflicten te beheren.

De kolom kolom zijn georganiseerd in families, die zijn te vergelijken met een tabel in een relationele database. Een kolom familie bevat een geordende lijst van kolommen die kunnen worden verwezen door hun naam. Elke kolom familie wordt opgeslagen in een apart bestand en het bestand wordt gerangschikt in rijen (rijen).

De kolom families zijn op hun beurt gegroepeerd in keyspaces, meestal een per aanvraag. Minder gebruikt worden superColumns, speciale kolommen die bevatten, in hen andere kolommen.

De typische grootte van 4-Cassandra is daarom als volgt:

 



 Keyspace -> Column Familie -> Familie Rij Column -> Columns -> Waarden

 
In het geval dat we de SuperColumns toe te voegen:
 



 Keyspace -> Column Super Family -> Familie Super Column Row -> Super Columns -> Columns -> Waarden

 

Hier is de JSON representatie van een eenvoudige notatie:






 Gebruikers {



  



 "Cyrus": {



    



 "Nickname": "Ci83"



    



 "Naam": "Cardone"



  



 }







 }



en een meer complexe toepassingen supercolumns





 Gebruikers {



  



 "Cyrus": {



    



 "Vaardigheden": {



      



 "Java": "Great"



      



 "PHP", "Excellent"



    



 },



    



 "Register": {



      



 "Nickname": "Ci83"



      



 "Naam": "Cardone"



    



 }



  



 }







 }



In keyspace "Gebruikers" wordt gedefinieerd als een sleutel "Cyrus" supercolonne met twee "vaardigheden" en "register", die elk bevat sleutel / waarde paren.

In dezelfde categorie ...
E-Learning
Linux (Cursus) Linux (Cursus)
Complete gids voor open-source systeem. Van 49 €.
MySQL (Cursus) MySQL (Cursus)
Beheer van de open source database. Van 39 €.
PHP (Cursus) PHP (Cursus)
Volledige cursus voor het maken van dynamische websites. Van 49 €.
Gesponsorde links