Sobes.tech
Junior — Middle

Кадом усулҳо ё асбобҳоро барои иҷрои кеши кардани маълумотҳо истифода бурдед?

sobes.tech AI

Ҷавоб аз AI

Барои кэшгирии маълумотҳо дар C# ман одатан чанд роҳро истифода мебарам:

  • MemoryCache аз фазои ном System.Runtime.Caching — барои кэши маҳаллии дар хотираи барнома. Имкон медиҳад, ки вақти зиндагии кэш, афзалиятҳо ва ғайраро муайян кард.

  • IMemoryCache ва IDistributedCache аз ASP.NET Core — барои кэшгирии дар барномаҳои веб. IMemoryCache кэши маҳаллӣ, IDistrubutedCache — барои кэши тақсимшуда (масалан, Redis).

  • Системҳои кэшии хориҷӣ, монанди Redis ё Memcached, барои кэши масштабшаванда ва тақсимшуда.

Масалан истифодаи MemoryCache:

using System.Runtime.Caching;

var cache = MemoryCache.Default;
string cacheKey = "user_123";
var user = cache.Get(cacheKey) as User;
if (user == null)
{
    user = GetUserFromDatabase(123); // усули гирифтани маълумот аз база
    cache.Set(cacheKey, user, DateTimeOffset.Now.AddMinutes(10));
}
// истифодаи user

Ин усул миқдори муроҷиатҳо ба базаи маълумотро кам мекунад ва иҷроишро беҳтар мекунад.