sql >> Databáze >  >> NoSQL >> Redis

Nejčastější případy použití Redis podle typů základních datových struktur

Redis, zkratka pro Remote Dictionary Server, je úložiště datových struktur klíč-hodnota v paměti s licencí BSD s otevřeným zdrojovým kódem napsané v jazyce C od Salvatore Sanfillipa a bylo poprvé vydáno 10. května 2009. V závislosti na tom, jak je nakonfigurováno Redis může fungovat jako databáze, mezipaměť nebo zprostředkovatel zpráv. Je důležité si uvědomit, že Redis je databázový systém NoSQL. To znamená, že na rozdíl od databázových systémů řízených SQL (Structured Query Language), jako jsou MySQL, PostgreSQL a Oracle, Redis neukládá data do dobře definovaných databázových schémat, která tvoří tabulky, řádky a sloupce. Místo toho Redis ukládá data do datových struktur, díky čemuž je použití velmi flexibilní. Hosting ScaleGrid pro Redis™* vám umožňuje automatizovat vaše časově náročné operace pro řadu různých případů použití Redis. V tomto blogu nastíníme nejčastější případy použití Redis podle různých typů základních datových struktur.

Datové struktury v Redis

Pojďme se podívat na některé datové typy, které Redis podporuje. V Redis máme řetězce, seznamy, sady, seřazené sady a hashe, kterým se budeme věnovat v tomto článku. Kromě toho máme další datové typy, jako jsou bitmapy, hyperloglogy a geoprostorové indexy s poloměrovými dotazy a proudy. I když existují některé nástroje grafického uživatelského rozhraní Redis napsané komunitou Redis, příkazový řádek je zdaleka nejdůležitějším klientem, na rozdíl od uživatelů populárních databází SQL, kteří často preferují systémy správy grafického uživatelského rozhraní, například phpMyAdmin pro MySQL a PgAdmin pro PostgreSQL.

Pojďme se blíže podívat na datové typy, které v Redis existují.

Redis Strings

Redis Strings jsou nejzákladnějším typem hodnoty Redis využívaným všemi ostatními typy datových struktur a jsou velmi podobné řetězcům v jiných programovacích jazycích, jako je Java nebo Python. Řetězce, které mohou obsahovat libovolný datový typ, jsou považovány za binárně bezpečné a mají maximální délku 512 MB. Zde je několik užitečných příkazů pro řetězce Redis:

Chcete-li uložit řetězec ‘john “ pod klíčem, jako je „student“ v Redis spusťte příkaz:

SET „student“ „john“

Chcete-li načíst řetězec, použijte příkaz GET, jak je znázorněno:

ZÍSKEJTE „student“

Chcete-li odstranit řetězec obsažený v klíči, použijte příkaz DEL:

DEL „student“

Případy použití řetězců Redis

  1. Mezipaměť relace: Mnoho webů využívá Redis Strings k vytvoření mezipaměti relace, aby urychlilo práci s webem ukládáním fragmentů HTML nebo stránek do mezipaměti. Vzhledem k tomu, že data jsou dočasně uložena v paměti RAM, je tento atribut Redis perfektní volbou jako mezipaměť relace. Je schopen dočasně ukládat data specifická pro uživatele, například položky uložené v nákupním košíku v internetovém obchodě, což je klíčové v tom, že vaši uživatelé nepřijdou o svá data v případě, že se odhlásí nebo ztratí připojení.
  2. Fronty: Každá aplikace, která se zabývá dopravním přetížením, zasíláním zpráv, shromažďováním dat, správou úloh nebo směrováním balíčků, by měla zvážit Redis Queue, protože vám to může pomoci spravovat velikost vaší fronty podle rychlosti příchodů a odchodů pro distribuci zdrojů.
  3. Využití a měřená fakturace: Méně známým případem použití pro Redis Strings je měření v reálném čase pro cenové modely založené na spotřebě. To umožňuje platformám SaaS, které účtují na základě skutečného využití, měřit aktivitu svých zákazníků, například v telekomunikačním průmyslu, kde si mohou účtovat textové zprávy nebo minuty.

Seznamy Redis

Seznamy obsahují řetězce, které jsou seřazeny podle pořadí vložení. Pomocí seznamů Redis můžete přidávat položky na začátek nebo konec seznamů, což je velmi užitečné při řazení úloh do fronty. Pokud požadujete provedení naléhavějších úloh, lze je předřadit před jiné úlohy s nižší prioritou ve frontě. Příkaz LPUSH bychom použili k vložení prvku na začátek nebo nalevo od řetězce a příkaz RPUSH k vložení na konec nebo napravo od řetězce. Podívejme se na příklad:

Seznam LPUSH x   # nyní je seznam "x"

Seznam LPUSH y   # nyní je seznam "y","x"

Seznam RPUSH z   # nyní je seznam "y","x","z" (všimněte si, jak byl prvek ‚z‘ přidán na konec seznamu příkazem RPUSH)

Případy použití v seznamu Redis

  1. Stránky sociálních sítí: Sociální platformy, jako je Twitter, používají seznamy Redis k naplnění svých časových os nebo zdrojů domovské stránky a mohou přizpůsobit horní část svých zdrojů pomocí populárních tweetů nebo příběhů.
  2. Zdroje RSS: Vytvářejte zpravodajské kanály z vlastních zdrojů, kde můžete stahovat nejnovější aktualizace a umožnit zájemcům, aby se přihlásili k odběru vašeho kanálu RSS.
  3. Výsledkové tabulky: Fóra jako Reddit a další hlasovací platformy využívají seznamy Redis k přidávání článků do žebříčku a řazení podle příspěvků s nejvyšším počtem hlasů.

Zjistěte, jak si vytvořit svůj vlastní zdroj Twitteru v našich tweetech o ukládání do mezipaměti pomocí blogového příspěvku Node.js, Redis a Socket.io.

Nejčastější případy použití #Redis podle typů základních datových struktur Kliknutím na Tweet

Sady Redis

Sady Redis jsou výkonné datové typy, které podporují výkonné operace, jako jsou průniky a sjednocení. Nejsou v žádném pořadí a obvykle se používají, když chcete provést audit a zobrazit vztahy mezi různými proměnnými. Sady jsou přiměřeně rychlé a bez ohledu na počet uložených prvků bude přidání nebo odebrání položek v sadě trvat stejně dlouho. Kromě toho sady neumožňují duplicitní klíče nebo duplicitní členy, takže klíč přidaný vícekrát do sady bude jednoduše ignorován. To je řízeno funkcí zvanou SADD, která zabraňuje duplikaci více podobných položek. Atribut SADD lze použít při kontrole jedinečných hodnot a také pro plánování úloh běžících na pozadí, včetně úloh cron, což jsou automatické skripty.

Tyto údaje jsou užitečné zejména pro analýzu chování zákazníků v reálném čase na vašem webu pro online nakupování. Pokud například provozujete internetový obchod s oblečením, Redis Sorted Sets využívají techniky porovnávání vztahů, jako jsou svazky, průniky a odečítání (běžně používané ve Vennových diagramech), aby poskytly přesný obraz chování zákazníků. Můžete načíst údaje o nákupních vzorcích mezi pohlavími, které oděvní produkty se prodávají nejvíce a ve kterých hodinách jsou zaznamenány nejvyšší prodeje.

Případy použití sady Redis

  1. Analýza prodeje elektronického obchodu: Mnoho online obchodů používá sady Redis k analýze chování zákazníků, jako je vyhledávání nebo nákupy pro konkrétní kategorii nebo podkategorii produktu. Majitel internetového knihkupectví může například zjistit, kolik zákazníků si v Psychologii zakoupilo lékařské knihy.
  2. Sledování IP adresy: Redis Sets jsou skvělým nástrojem pro vývojáře, kteří chtějí analyzovat všechny IP adresy, které navštívili konkrétní webovou stránku nebo příspěvek na blogu, a pomocí funkce SADD ignorovat všechny duplikáty pro jedinečné návštěvníky.
  3. Nevhodné filtrování obsahu: U každé aplikace, která shromažďuje uživatelské vstupy, je dobré implementovat filtrování obsahu na nevhodná slova a můžete to udělat pomocí sad Redis přidáním slov, která chcete filtrovat, do klávesy SET a příkazu SADD.

Seřazené sady

Jak název napovídá, Redis Sorted Sets jsou sbírkou řetězců, které přiřazují pořadí vašim prvkům, a jsou jednou z nejpokročilejších datových struktur v Redis. Jsou podobné sadám Redis, pouze sady nemají pořadí, zatímco Tříděné sady spojují každého člena s partiturou. Tříděné sady jsou známé tím, že jsou velmi rychlé, protože můžete vrátit uspořádané seznamy a přístupové prvky v co nejkratším čase.

Případy použití Redis Sorted Sets

  1. Platformy otázek a odpovědí: Mnoho platforem pro otázky a odpovědi, jako je Stack Overflow a Quora, používá Redis Sorted Sets k hodnocení odpovědí s nejvyšším hlasem pro každou navrženou otázku, aby bylo zajištěno, že obsah nejvyšší kvality bude uveden v horní části stránky.
  2. Výsledkové tabulky herních aplikací: Online herní aplikace využívají Redis Sorted Sets, aby udržely své seznamy nejvyšších skóre, protože skóre se může opakovat, ale řetězce obsahující jedinečné údaje o uživateli nikoli.
  3. Služba plánování úloh: Redis Sorted Sets jsou skvělým nástrojem pro službu plánování úkolů, protože můžete přiřadit skóre k seřazení priority úkolu ve vaší frontě. Pro jakýkoli úkol, který nemá zaznamenané skóre, můžete použít možnost HMOTNOSTI na výchozí hodnotu 1.
  4. Geografické hašování: Redis geo indexing API používá Sorted Set pro techniku ​​Geo Hash, která vám umožňuje indexovat místa na základě zeměpisné šířky a délky a převádět vícerozměrná data na lineární data.

Hash Redis

Hash Redis jsou mapy mezi řetězcovými poli a řetězcovými hodnotami. Toto je datový typ go-to, pokud potřebujete v podstatě vytvořit kontejner jedinečných polí a jejich hodnot pro reprezentaci objektů. Hashe vám umožňují uložit slušné množství polí, až 232 – 1 párů hodnoty pole (více než 4 miliardy), přičemž zabírají velmi málo místa. Kdykoli je to možné, měli byste používat hashe Redis, protože můžete použít malou instanci Redis k uložení milionů objektů. Kromě mnoha pokročilých operací můžete použít základní operace hashovacích příkazů, jako je get, set, exists.

Případy použití Redis hash

  1. Uživatelské profily: Mnoho webových aplikací používá pro své uživatelské profily hash Redis, protože mohou používat jeden hash pro všechna uživatelská pole, jako je jméno, příjmení, e-mail, heslo atd.
  2. Příspěvky uživatelů: Sociální platformy jako Instagram využívají Redis Hashes k mapování všech archivovaných uživatelských fotografií nebo příspěvků zpět k jedinému uživateli. Hašovací mechanismus jim umožňuje velmi rychle vyhledávat a vracet hodnoty, ukládat data do paměti a využívat perzistenci dat v případě, že jeden z jejich serverů zemře.
  3. Ukládání metrik pro více nájemců: Aplikace pro více tenantů mohou využívat hash Redis k záznamu a ukládání jejich produktových a prodejních metrik způsobem, který zaručuje pevné oddělení mezi jednotlivými tenanty, protože hashe lze efektivně kódovat ve velmi malém paměťovém prostoru.

Kdo používá Redis?

Redis našel obrovský podíl na trhu v oblasti cestování a pohostinství, komunitních fór, sociálních médií, SaaS a elektronického obchodu, abychom jmenovali jen některé. Mezi přední společnosti, které používají Redis, patří Pinterest, Uber, Slack, Airbnb, Twitter a Stack Overflow. Zde jsou některé statistiky o dnešní popularitě Redis:

  • 4 107 společností nahlásilo používání Redis na StackShare
  • 8 759 vývojářů uvedlo používání Redis na StackShare
  • 38 094 uživatelů GitHubu označilo Redis hvězdičkou
  • #8 hodnocená databáze na DB-Engines se skóre 144,08


  1. Problém s vracením dat načtených z dotazů DB volaných ve smyčce

  2. Jak najít průsečík množin mezi dokumenty v jedné kolekci v MongoDB?

  3. Jaká je výchozí cesta k databázi pro MongoDB?

  4. HBase BlockCache 101