Jednoduchá key/value databáze

Jan Zapletal

Jednoduchá key/value databáze
« kdy: 10. 08. 2015, 20:42:26 »
Dobrý den,

mám malou html5 stránku s javascriptem, která z několika zadaných hodnot vypočítá výsledek.
Protože se mi nechce zadávat vstupní údaje pokaždé znovu, ukládám si poslední zadané hodnoty pomocí html5 local storage přímo do prohlížeče.
Toto mi přestalo stačit a chtěl bych, aby tyto vstupní hodnoty byly vidět i z jiných počítačů - tj. potřebuju si hodnoty ukládat ne lokálně, ale na server.

Jelikož se jedná max. o stovku hodnot, nepotřebuji žádný super výkonný DB nástroj. Rád bych, aby se to dalo spustit pod běžným uživatelem (mám k dispozici jeden shellový účet na počítači v internetu, který mi i hostuje tu html stránku) a pak jsem tam ty hodnoty mohl ukládat/číst ze svého javascriptu podobně, jako teď používám to html5 storage.

Tuším, že chci asi nějakou malou nosql key/value databázi, ale našel jsem jich hodně napsaných v erlagu (není na daném stroji nainstalovaný), javě (příliš nenažrané), nebo mají knihovny do pythonu, ruby, go, ... ale přístup z javascriptu ne a ne najít.

Poradíte?
« Poslední změna: 10. 08. 2015, 23:08:05 od Petr Krčmář »


Vít Pintér

Re:key/value databáze
« Odpověď #1 kdy: 10. 08. 2015, 21:11:33 »
http://html5doctor.com/introducing-web-sql-databases/

A napsat si v modelu key/value přistup už by neměl být problém

Kit

Re:key/value databáze
« Odpověď #2 kdy: 10. 08. 2015, 21:13:25 »
Pokud na serveru běží PHP, tak jeho součástí je obvykle několik zajímavých souborových databází:

- inifile - pro uložení konfigurace ve stylu INI souborů pro Windows
- cdb - konstantní databáze pro data, která se nemění (např. číselníky, PSČ,...)
- db4 nebo gdbm - jako rychlé úložiště key/value
- sqlite3 - SQL databáze, která je také uložena v jednom souboru

Záleží na tom, co si vybereš. Každá z nich se hodí k jinému účelu a jsou i rychlé.

M.

Re:key/value databáze
« Odpověď #3 kdy: 10. 08. 2015, 21:14:33 »
Další možnost je třeba  DB Redis http://redis.io/
a k ní dát Webdis jako iface http://webd.is/

Jan Zapletal

Re:key/value databáze
« Odpověď #4 kdy: 10. 08. 2015, 21:46:18 »
@Vít Pintér - jestli to dobře chápu, jedná se o databázi na klientovi, tj. vlastně předchůdce html5 local storage, které nyní používám.

@Kit - php na tom počítači neběží, nicméně díky za zajímavé odkazy, může se hodit.

@M. - na redis jsem už při bádání narazil, ale chyběla mi tam právě ta zmínka o webdis - v této kombinaci to asi vypadá na to, co hledám. Díky!


Janci

Re:key/value databáze
« Odpověď #5 kdy: 10. 08. 2015, 21:50:05 »
Ja by som odporucil NodeJS https://nodejs.org/, je to Javascript interpret co bezi na serveri,
na par riadkov napises HTTP server, ktory moze jednak hostovat tu HTML5 stranku,
druhak bude mat jeden AJAX endpoint, ktory bude robit tu key/value databazu
na par stoviek zaznamov netreba nic vymyslat, pohodlne to moze byt ulozene v pamati v JS objekte {}

tdvorak

Re:Jednoduchá key/value databáze
« Odpověď #6 kdy: 11. 08. 2015, 07:29:52 »
Co mrknout na https://www.firebase.com/ ? Přístup rovnou z klientského JS, netřeba nikam nic instalovat, základní plán zdarma.

tdvorak

Re:Jednoduchá key/value databáze
« Odpověď #7 kdy: 11. 08. 2015, 07:32:29 »
Co mrknout na https://www.firebase.com/ ? Přístup rovnou z klientského JS, netřeba nikam nic instalovat, základní plán zdarma.

Ještě úvod do Firebase: http://www.zdrojak.cz/clanky/firebase-kratke-seznameni/

Filip Jirsák nepřihlášený

Re:Jednoduchá key/value databáze
« Odpověď #8 kdy: 11. 08. 2015, 08:28:30 »
ale přístup z javascriptu ne a ne najít.
JavaScript vám běží v prohlížeči, z něj se přímo do databáze na serveru nedostanete. Budete muset z prohlížeče dávat požadavky přes protokol HTTP a posílat je třeba ve formátu JSON nebo XML, a na serveru se pak musí přeložit pro tu příslušnou databázi. Server může být v libovolném jazyce, na JavaScriptu v prohlížeči je to nezávislé – může to být PHP, Java, Ruby ale klidně i serverový JavaScript.

Pro vás bude nejlepší nějaká databáze, která už má HTTP rozhraní a umí komunikovat přes JSON nebo XML, abyste na serveru nemusel nic programovat. Pokud chcete mít svůj vlastní server, můžete použít třeba CouchDB nebo eXist-db, jednodušší asi bude hostované řešení, třeba Amazon SimpleDB nebo Firebase. Když budete hledat "JSON database", "REST database", "web database" apod., najdete toho spoustu.

Ivoszz

Re:Jednoduchá key/value databáze
« Odpověď #9 kdy: 11. 08. 2015, 09:23:54 »
Myslím, že Firebase je slušná volba, za zmínku asi stojí i LevelDB (resp. levelup), ale ten nemá přímo REST interface, takže by se muselo něco najít nebo napsat.