Redis na Trello používáme pro pomíjivá data, o která bychom klidně přišli. Data v Redis neuchováváme na disk a používáme je allkeys-lru, takže tam ukládáme pouze věci, které mohou být kdykoli vykopnuty s pouze velmi drobnými nepříjemnostmi pro uživatele (např. momentální zobrazení nesprávného stavu uživatele). Jak již bylo řečeno, dáváme mu více než 5x větší prostor, který potřebuje k uložení jeho skutečné pracovní sady, a vybíráme si z 10 klíčů pro vypršení platnosti, takže opravdu nikdy nevidíme, že by něco, co používáme, bylo vyhozeno.
-
Je to náš pubsub server. Když uživatel něco udělá s boardem nebo kartou, chceme poslat zprávu s tímto rozdílem všem klientům připojeným k websocket, kteří jsou přihlášeni k odběru objektu, který se změnil, takže všechny naše procesy Node jsou přihlášeny k odběru kanálu pubsub, který se šíří tyto zprávy a šíří je do patřičně povolených a přihlášených webových soketů.
-
TAKTO jej používáme k zálohování socket.io, ale protože používáme pouze websockets, a protože socket.io je příliš upovídaný na to, aby se škáloval, jak bychom ho v tuto chvíli potřebovali, máme patch, který zakáže všechny kanály kromě jednoho. je pro nás nezbytné.
-
Pro naše uživatele, kteří nemají websockets, musíme vést seznam akcí, které se staly na každém objektovém kanálu od posledního požadavku uživatele na průzkum. K tomu používáme seznam, který omezujeme na posledních 100 prvků, a pomocné počítadlo, kolik prvků bylo přidáno do seznamu od jeho vytvoření. Když tedy odpovídáme na žádost takového prohlížeče, můžeme zkontrolovat poslední prvek, který hlásí, že viděl, a odeslat pouze zprávy, které byly od té doby přidány do fronty. Takže ve většině případů se žádost o průzkum sníží na pouze kontrolu oprávnění a kontrolu jediného klíče Redis, což je velmi rychlé.
-
Některá pomíjivá data o aktivním stavu připojených uživatelů ukládáme v Redis, protože tato data se často mění a není nutné je uchovávat na disku.
-
V Redis uchováváme klíče s krátkou životností pro podporu přihlášení OAuth.
Milujeme Redis; jakmile máte instanci spuštěnou a spuštěnou, chcete ji používat pro všechny druhy věcí. Jediný skutečný problém, který jsme s tím měli, je s pomalými klienty, kteří zabírají dostupný prostor.
MongoDB používáme pro naše tradičnější databázové potřeby.