Programovanie

Ako pracovať s Redis Cache v .NET

Ukladanie do medzipamäte je stratégia riadenia stavu, ktorú je možné použiť na zlepšenie výkonu vašich aplikácií, pretože vám pomáha znižovať spotrebu zdrojov vo vašom systéme.

Redis Cache je otvorená, vysokorýchlostná databáza NoSQL. Je to rýchle a beží to úplne v pamäti so zanedbateľným režijným výkonom pri čítaní a zápise údajov. Je potrebné poznamenať, že Redis je zadarmo na komerčné aj nekomerčné použitie na základe licencie BSD.

Čo je Redis Cache a prečo by som ho mal používať?

Redis je jedným z najpopulárnejších otvorených zdrojov dát v pamäti NoSQL, dostupných v pamäti. Jedná sa o dátové úložisko v pamäti, ktoré môže podporovať širokú škálu dátových štruktúr, t. J. Reťazce, haše, množiny, zoznamy atď. Redis tiež poskytuje zabudovanú podporu pre replikáciu a transakcie, ako aj vynikajúcu podporu pre vytrvalosť údajov.

Redis je dobrá voľba predovšetkým vtedy, ak vaša aplikácia potrebuje na ukladanie a načítanie veľkého množstva údajov. Ak vaša aplikácia potrebuje na ukladanie a načítanie veľkého množstva dát a dostupnosť voľnej pamäte nie je obmedzujúca, je Redis Cache nástrojom na ukladanie do medzipamäte, ktorý by ste mali vyhľadať. Nastavenie Redis je celkom jednoduché - nasledujúce časti sa zaoberajú inštaláciou, konfiguráciou a používaním Redis.

Inštaluje sa Redis

Kópiu Redis Cache si môžete stiahnuť z GitHubu. Pri inštalácii Redis by ste mali skontrolovať možnosť pridať Redis do premennej prostredia PATH. Po nainštalovaní vyrovnávacej pamäte Redis do systému môžete zadaním príkazu Spustiť -> service.msc zobraziť službu Redis spustenú vo vašom systéme.

Práca s klientom C # Redis

Teraz, keď je vo vašom systéme nainštalovaný Redis, potrebujete klienta na ukladanie a načítanie údajov do az Redis Cache. V tomto príklade použijeme open source klienta ServiceStack C # Redis. Ak to chcete urobiť, vytvorte nový projekt konzolovej aplikácie v Visual Studio. ServiceStack.Redis môžete nainštalovať prostredníctvom správcu balíkov NuGet.

Za predpokladu, že ServiceStack.Redis bol nainštalovaný cez NuGet, nasledujúce dve metódy ilustrujú, ako môžete ukladať a načítať údaje z medzipamäte Redis pomocou rozhrania ServiceStack.Redis API.

private static bool Uložiť (hostiteľ reťazca, kľúč reťazca, hodnota reťazca)

        {

bool isSuccess = false;

pomocou (RedisClient redisClient = nový RedisClient (hostiteľ))

            {

if (redisClient.Get (key) == null)

                {

isSuccess = redisClient.Set (kľúč, hodnota);

                }

            }

návrat jeÚspech;

        }

privátny statický reťazec Získať (hostiteľ reťazca, kľúč reťazca)

        {

pomocou (RedisClient redisClient = nový RedisClient (hostiteľ))

            {

return redisClient.Get (kľúč);

            }

        }

Všimnite si, ako boli metódy Set a Get triedy RedisClient použité na ukladanie a načítanie údajov do az Redis Cache. Nechám na vás aktualizáciu týchto dvoch metód, aby boli všeobecné, aby mohli pracovať s akýmkoľvek typom.

Týmto spôsobom môžete zavolať tieto metódy z hlavnej metódy:

static void Main (reťazec [] args)

        {

string host = "localhost";

string key = "";

// Uloženie údajov do medzipamäte

bool success = Uložiť (hostiteľ, kľúč, „Hello World!“);

// Načítanie údajov z medzipamäte pomocou klávesu

Console.WriteLine ("Údaje načítané z vyrovnávacej pamäte Redis:" + Get (hostiteľ, kľúč));

Console.Read ();

        }

Ako som už povedal, Redis je bohatý na funkcie. V jednom zo svojich budúcich článkov sa tu budem venovať niektorým pokročilým konceptom ako persistencia, pub-sub, automatické prepnutie po zlyhaní atď. Môžete využiť výhody trvalosti RDB (jeden kompaktný súbor) alebo AOF. Pred výberom správnej možnosti vytrvalosti však musíte zvážiť kompromisy medzi výkonom, odolnosťou a vstupno-výstupnými podmienkami disku.

Viac sa o Redis dozviete z online dokumentácie k projektu.

Ak máte záujem o použitie svojich údajov Redis pomocou nástroja na správu grafického používateľského rozhrania, môžete vyskúšať nástroj Redis Admin UI.

$config[zx-auto] not found$config[zx-overlay] not found