[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: