[Linuxtrent] Re: Key-value data stores or NoSQL databases
- From: azazel <azazel@xxxxxxxxxxxxxxx>
- To: linuxtrent@xxxxxxxxxxxxx
- Date: Wed, 20 Sep 2017 19:50:01 +0200
"Daniele" == Daniele Nicolodi <daniele@xxxxxxxxxx> writes:
Daniele> Ciao,
Daniele> per diverse ragioni mi sto esplorando un poco il mondo dei database
Daniele> NoSQL o key-value data stores. In particolare ho cominciato a
Daniele> giochicchiare con Redis, che sembra essere la soluzione più matura
e
Daniele> popolare.
non mi pare si possa parlare di UNA unica soluzione
Daniele> Ad un primo sguardo, sono piacevolmente stupito da quanto sia
facile da
Daniele> usare, ma ad un analisi più approfondita non riesco a capire quale
Daniele> vantaggi presenti rispetto ad un tradizionale database
relazionale. Per
Daniele> quello che ho visto fino ad adesso, mi sembra una database
relazionale
Daniele> per qualcuno che non ha capito come si usano i database
relazionali, o
Daniele> che ha avuto a che fare solo con MySQL o altri database zoppi.
Daniele> La prima perplessità viene dal fatto che, non è esattamente vero
che si
Daniele> possono memorizzare dati di tipo non uniforme, ma è più corretto
dire
Daniele> che si possono memorizzare solo stringhe binarie e che un sistema
di
Daniele> marshalling deve essere utilizzato per memorizzare qualsiasi altra
cosa.
Daniele> Quindi non capisco che differenza ci sia tra Redis e (per
esempio) una
Daniele> tabella PostgreSQL '(key text primary key, value bytea)'.
Daniele> Occorre quindi abbinare a Redis (ma da quanto ho visto tutti i
Daniele> contendenti funzionano allo stesso modo) un sistema di
marshalling: ce
Daniele> ne sono a bizzeffe. Dopo una breve ricerca ho scelto MessagePack,
Daniele> soprattutto perché ha una ovvia scelta per il supporto per Python e
Daniele> questa non sembra una schifezza (lo stesso non si può dire per
altre
Daniele> librerie simili).
Daniele> Credo mi stia sfuggendo il nocciolo del problema. Commenti?
Fin'ora non ho avuto molte occasioni di usarli, ma ovviamente ci si
documenta per conoscere caratteristiche e modalità di impiego.
Da quanto ne so Redis è un po' particolare come DB in quanto è fatto per
lavorare con il db completamente caricato in memoria e molte volte viene
usato al posto di memcache come cache LRU o per gestire la coordinazione
di attività.
Credo che db mongodb, cassandra, riak, couchdb, rethinkdb, arangodb
(solo per citarne alcuni) siano più rappresentativi del mondo "NoSQL",
ognuno con le proprie caratteristiche....
In genere quello che li accumuna è una maggiore "facilità" di funzionare
in cluster multi-master e spesso una maggiore facilità di
implementazione di modalità di ricerca che usano un pattern map-reduce.
--
Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO
"subscribe" (o "unsubscribe") a
mailto:linuxtrent-request@xxxxxxxxxxxxx
Other related posts: