Osobní stránky

Redis – úvod

V posledních letech se začínají čím dál, tím více prosazovat nerelační (NoSQL) databáze. Mezi nejznámnější z nich patří: CouchDB, MongoDB, Redis a Cassandra. Tyto databáze nepodporují operace typu join, které známe z klasických relačních databází, ale na oplátku zvládnou data jednoduše škálovat a optimalizovat pro rychlejší čtení. Místo vlastností ACID (Atomicity, Consistency, Isolation, Durability) implementují dvě ze tří vlastností souhrnně zvané CAP teorém (Consistency, Availability, Partition tolerance).

Databáze můžeme rozdělit do několika skupin podle použitého způsobu práce s uloženými daty. Nejpoužívanějším typem jsou relační databáze, ty používají k dotazování relační algebru a klasickými zástupci této skupiny jsou: Oracle Database, PostgreSQL, MySQL a MS SQL.

Dalším typem jsou Dokumentově orientované (Document store) databáze, ty oproti relačním nemají schéma, takže do nich můžeme ukládat data s různými atributy. Nejznámější zástupci jsou: Apache CouchDB a MongoDB.

Následující skupina jsou key-value databáze, zde přiřazujeme unikátnímu klíči hodnotu určitého typu. Do této skupiny patří právě Redis a Apache Cassandra.

Pak zde máme objektové databáze, ty mají nejlepší využití spolu s objektovými jazyky jako například Java, C++ a další. Jejich největší výhodou je možnost uložit objekty do databáze, přesně tak jak jsou. V relačních databázích se k tomuto účelu využívá ORM – objektově-relační mapování (object-relational mapping). Do této kategorie patří db4o a další.

Poslední rozšířenou skupinou jsou XML databáze. Zde mohou být data uložena přímo jako XML, anebo XML přímají jen jako vstup a výstup a data jsou uložena v jiné formě, například v relační databázi.

Toto je výčet nejdůležitějších typů databází. Existují samozřejmě i další typy, například grafové databáze, které umožňují ukládat grafy a hybridní databáze, které kombinují více druhů dohromady, ale ty nejsou moc rozšířené.

Redis tedy patří do kategorie key-value databází. Můžeme si do něj uložit klíč (jakýkoliv řetězec) a k němu přiřadit hodnotu. Hodnota může být typu: číslo, řetězec, hash (asociativní pole), list (seznam), set (množina) a sorted-set (seřazená množina). S těmito datovými typy můžeme provádět různé operace. S množinami například matematické operace jako průnik, sjednocení a další, u listů lze přidávat/odebírat zleva a zprava a podobně.

Mezi hlavní výhody Redisu patří jeho rychlost, všechny klíče jsou uloženy v paměti počítače, proto jsou tedy základní operace velmi rychlé. U každého příkazu v dokumentaci je navíc uvedena i jeho složitost.

Toto byl jen zběžný úvod a v dalším článku popíšu Redis podorbněji. Na co se hodí a jak se pracuje s daty.

Další zdroje:

Jakub Škvára


Jakub je cestovatel, blogger a webový vývojář. Zajímá se především o technické novinky a rád navštěvuje konference. Používá: Symfony2 Framework, AngularJS, NodeJS, MongoDB a další moderní technologie. Aktuálně žije v Londýně.