Rumah >pangkalan data >Redis >Cara menggunakan Redis dan C# untuk melaksanakan fungsi caching teragih

Cara menggunakan Redis dan C# untuk melaksanakan fungsi caching teragih

王林
王林asal
2023-09-21 11:27:211478semak imbas

Cara menggunakan Redis dan C# untuk melaksanakan fungsi caching teragih

Cara menggunakan Redis dan C# untuk melaksanakan fungsi caching teragih

Pengenalan:
Dalam sistem teragih, caching ialah komponen penting, yang boleh mengurangkan beban pada pangkalan data dan meningkatkan prestasi dan kebolehskalaan sistem. Redis ialah pelayan caching yang popular, dan kesederhanaan, kecekapan dan kebolehskalaannya menjadikannya pilihan yang ideal. Artikel ini akan memperkenalkan cara menggunakan bahasa pengaturcaraan Redis dan C# untuk melaksanakan fungsi caching teragih dan menyediakan contoh kod khusus.

Langkah 1: Pasang dan konfigurasikan Redis
Mula-mula, kita perlu memasang Redis dan melaksanakan konfigurasi asas. Kami boleh memuat turun versi terkini Redis dari laman web rasmi Redis (https://redis.io) dan memasangnya mengikut sistem pengendalian yang berbeza. Setelah pemasangan selesai, mulakan pelayan Redis dan pastikan ia berjalan secara setempat pada port lalai 6379.

Langkah 2: Pasang pakej StackExchange.Redis NuGet
Sebelum menggunakan bahasa pengaturcaraan C# untuk berinteraksi dengan Redis, kita perlu memasang pakej StackExchange.Redis NuGet. Pakej ini menyediakan klien Redis yang berkuasa dan mudah digunakan untuk berkomunikasi dengan pelayan Redis.

Langkah 3: Wujudkan sambungan Redis
Dalam C#, kita boleh menggunakan kelas ConnectionMultiplexer dalam perpustakaan StackExchange.Redis untuk mewujudkan sambungan kepada Redis. Berikut ialah contoh kod mudah:

using StackExchange.Redis;

ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");

Kod ini akan mewujudkan sambungan ke pelayan Redis yang dijalankan secara tempatan. Jika pelayan Redis anda berjalan pada hos lain, anda perlu menukar "localhost" dalam rentetan sambungan kepada nama hos atau alamat IP yang sepadan.

Langkah 4: Gunakan Redis untuk operasi caching
Seterusnya, kita boleh menggunakan antara muka IDatabase dalam perpustakaan StackExchange.Redis untuk melaksanakan operasi caching. Berikut adalah beberapa contoh operasi cache asas:

  1. Tambah item cache:

    IDatabase cache = redis.GetDatabase();
    string key = "username";
    string value = "John";
    cache.StringSet(key, value);
  2. Dapatkan item cache:

    string username = cache.StringGet(key);
  3. Padam item cache:

    cache.KeyDelete(key);
fungsi cache diedarkan


Step

melaksanakan fungsi cache teragih, kita boleh menggunakan kunci teragih Redis untuk memastikan ketekalan operasi serentak. Di bawah ialah kod sampel yang menunjukkan cara menggunakan kunci yang diedarkan Redis untuk melaksanakan kawalan serentak bagi bacaan cache:

public string GetCachedData()
{
    string key = "cached_data";
    string value = cache.StringGet(key);

    if (string.IsNullOrEmpty(value))
    {
        // 如果缓存项不存在,则获取分布式锁
        using (var distributedLock = new RedisDistributedLock(cache, "cache_lock", TimeSpan.FromSeconds(10)))
        {
            if (distributedLock.AcquireLock())
            {
                try
                {
                    // 重新获取缓存项
                    value = cache.StringGet(key);
                    if (string.IsNullOrEmpty(value))
                    {
                        // 从数据库中获取数据
                        value = GetDataFromDatabase();

                        // 将数据存入缓存
                        cache.StringSet(key, value);
                    }
                }
                finally
                {
                    distributedLock.ReleaseLock();
                }
            }
            else
            {
                // 等待其他线程完成缓存的写入操作后重新获取缓存项
                Thread.Sleep(100);
                value = cache.StringGet(key);
            }
        }
    }

    return value;
}

Dalam kod di atas, kami mula-mula menyemak sama ada item cache yang ditentukan wujud dalam cache. Jika ia tidak wujud, dapatkan kunci teragih bernama "cache_lock" dan semak semula sama ada kemasukan cache wujud. Jika utas lain menjalankan operasi tulis ke cache, utas semasa akan menunggu 100 milisaat sebelum menyemak semula entri cache.


Kesimpulan:

Artikel ini memperkenalkan cara menggunakan bahasa pengaturcaraan Redis dan C# untuk melaksanakan fungsi caching teragih. Kami memasang dan mengkonfigurasi Redis, dan menggunakan perpustakaan StackExchange.Redis untuk mewujudkan sambungan kepada Redis. Kemudian, kami menunjukkan cara menggunakan Redis untuk operasi cache asas dan menggunakan kunci teragih Redis untuk melaksanakan kawalan serentak bagi bacaan cache. Melalui contoh kod ini, saya berharap pembaca dapat melaksanakan fungsi cache yang diedarkan dengan jayanya dalam projek mereka sendiri. 🎜

Atas ialah kandungan terperinci Cara menggunakan Redis dan C# untuk melaksanakan fungsi caching teragih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn