Mulai Cepat: Menggunakan Azure Cache for Redis di .NET Framework
Dalam mulai cepat ini, Anda menggabungkan Azure Cache for Redis ke dalam aplikasi .NET Framework untuk memiliki akses ke cache khusus yang aman, yang dapat diakses dari aplikasi apa pun di Azure. Anda secara khusus menggunakan klien StackExchange.Redis dengan kode C# di aplikasi konsol .NET.
Langsung ke kode pada GitHub
Kloning repositori dari (https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/dotnet di GitHub.
Prasyarat
- Langganan Azure - buat akun secara gratis
- Visual Studio 2019
- .NET Framework 4 atau yang lebih tinggi, yang diperlukan oleh klien StackExchange.Redis.
Membuat cache
Untuk membuat cache, masuk ke portal Azure dan pilih Buat sumber daya.
Di halaman Baru, pilih Database, lalu pilih Azure Cache for Redis.
Pada halaman Cache Redis Baru, konfigurasikan pengaturan untuk cache baru Anda.
Pengaturan Pilih nilai Deskripsi Langganan Buka menu drop-down dan pilih langganan Anda. Langganan untuk membuat instans Azure Cache for Redis baru ini. Grup sumber daya Buka drop down dan pilih grup sumber daya, atau pilih Buat baru dan masukkan nama grup sumber daya baru. Nama untuk grup sumber daya tempat membuat cache dan sumber daya lainnya. Dengan menyatukan semua sumber daya aplikasi dalam satu grup sumber daya, Anda dapat dengan mudah mengelola atau menghapusnya sekaligus. Nama DNS Masukkan nama yang unik. Nama cache harus merupakan untai (karakter) antara 1 dan 63 karakter yang hanya berisi angka, huruf, atau tanda hubung. Nama harus dimulai dan diakhiri dengan angka atau huruf, dan tidak boleh berisi tanda hubung berturut-turut. Nama host instans cache Anda adalah <DNS name.redis.cache.windows.net>. Location Buka drop down dan pilih lokasi. Pilih wilayah di dekat layanan lain yang menggunakan cache Anda. Jenis cache Buka menu drop down dan pilih tingkat. Tingkat menentukan ukuran, performa, dan fitur yang tersedia untuk cache tersebut. Untuk informasi selengkapnya, lihat Gambaran Umum Azure Cache for Redis. Pilih tab Jaringan atau pilih tombol Jaringan di bagian bawah halaman.
Di tab Jaringan, pilih metode konektivitas Anda.
Pilih tab Berikutnya: Tingkat Lanjut atau pilih tombol Berikutnya: Tingkat Lanjut di bagian bawah halaman untuk melihat tab Tingkat Lanjut .
- Untuk cache Dasar atau Standar, alihkan pilihan untuk port non-TLS. Anda juga dapat memilih apakah Anda ingin mengaktifkan Autentikasi Microsoft Entra.
- Untuk cache Premium, konfigurasikan pengaturan untuk port non-TLS, pengklusteran, identitas terkelola, dan persistensi data. Anda juga dapat memilih apakah Anda ingin mengaktifkan Autentikasi Microsoft Entra.
Pilih tab Berikutnya: Tag atau pilih tombol Berikutnya: Tag di bagian bawah halaman.
Secara opsional, di tab Tag, masukkan nama dan nilai jika Anda ingin mengategorikan sumber daya.
Pilih Tinjau + buat. Anda dibawa ke tab Tinjau + buat tempat Azure memvalidasi konfigurasi Anda.
Setelah pesan lulus Validasi warna hijau muncul, pilih Buat.
Dibutuhkan beberapa saat untuk membuat cache. Anda dapat memantau kemajuan di halaman Gambaran Umum Azure Cache for Redis. Ketika Status muncul sebagai Sedang Berjalan, cache siap digunakan.
Mengambil nama host, port, dan kunci akses dari portal Azure
Untuk menyambungkan ke server Azure Cache for Redis Anda, klien cache memerlukan nama host, port, dan kunci untuk cache. Beberapa klien mungkin merujuk ke item ini dengan nama yang sedikit berbeda. Anda bisa mendapatkan nama host, port, dan kunci dari portal Azure.
Untuk mendapatkan kunci akses, dari navigasi kiri cache, pilih Kunci akses.
Untuk mendapatkan nama host dan port, dari navigasi kiri cache, pilih Properti. Nama host dalam bentuk <nama DNS>.redis.cache.windows.net.
Buat file di komputer Anda bernama CacheSecrets.config dan letakkan di C:\AppSecrets\CacheSecrets.config.
Edit file CacheSecrets.config dan tambahkan konten berikut:
<appSettings> <add key="CacheConnection" value="<host-name>,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/> </appSettings>
Ganti
<host-name>
dengan nama host cache Anda.Ganti
<access-key>
dengan kunci primer untuk cache Anda.Simpan file.
Mengonfigurasi klien cache
Di bagian ini, Anda akan menyiapkan aplikasi konsol untuk menggunakan klien StackExchange.Redis untuk .NET.
Di Visual Studio, pilih Alat>Pengelola Paket NuGet>Konsol Pengelola Paket, dan jalankan perintah berikut dari jendela Konsol Pengelola Paket.
Install-Package StackExchange.Redis
Setelah penginstalan selesai, klien cache StackExchange.Redis tersedia untuk digunakan dengan proyek Anda.
Koneksi ke cache Rahasia
Di Visual Studio, buka file App.config Anda untuk memverifikasi bahwa file berisi atribut appSettings
file
yang mereferensikan file CacheSecrets.config.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<appSettings file="C:\AppSecrets\CacheSecrets.config"></appSettings>
</configuration>
Jangan pernah menyimpan info masuk dalam kode sumber. Untuk memastikan sampel ini tetap sederhana, kami menggunakan file konfigurasi rahasia eksternal. Pendekatan yang lebih baik adalah menggunakan Azure Key Vault dengan sertifikat.
Koneksi ke cache dengan RedisConnection
Koneksi ke cache Anda dikelola oleh kelas RedisConnection
. Koneksi pertama kali dibuat dalam pernyataan ini dari Program.cs
:
_redisConnection = await RedisConnection.InitializeAsync(connectionString: ConfigurationManager.AppSettings["CacheConnection"].ToString());
Nilai appSetting CacheConnection digunakan untuk mereferensikan string koneksi cache dari portal Azure sebagai parameter kata sandi.
Di RedisConnection.cs
, Anda akan melihat namespace layanan StackExchange.Redis
dengan kata kunci using
. Ini diperlukan untuk kelas RedisConnection
.
using StackExchange.Redis;
Kode RedisConnection
memastikan bahwa selalu ada koneksi yang sehat ke cache dengan mengelola instans ConnectionMultiplexer
dari StackExchange.Redis
. Kelas RedisConnection
membuat ulang koneksi ketika koneksi hilang dan tidak dapat tersambung kembali secara otomatis.
Untuk informasi selengkapnya, lihat StackExchange.Redis dan kode dalam repositori GitHub.
Menjalankan perintah cache
Di program.cs
, Anda dapat melihat kode berikut untuk metode RunRedisCommandsAsync
di kelas Program
untuk aplikasi konsol:
private static async Task RunRedisCommandsAsync(string prefix)
{
// Simple PING command
Console.WriteLine($"{Environment.NewLine}{prefix}: Cache command: PING");
RedisResult pingResult = await _redisConnection.BasicRetryAsync(async (db) => await db.ExecuteAsync("PING"));
Console.WriteLine($"{prefix}: Cache response: {pingResult}");
// Simple get and put of integral data types into the cache
string key = "Message";
string value = "Hello! The cache is working from a .NET console app!";
Console.WriteLine($"{Environment.NewLine}{prefix}: Cache command: GET {key} via StringGetAsync()");
RedisValue getMessageResult = await _redisConnection.BasicRetryAsync(async (db) => await db.StringGetAsync(key));
Console.WriteLine($"{prefix}: Cache response: {getMessageResult}");
Console.WriteLine($"{Environment.NewLine}{prefix}: Cache command: SET {key} \"{value}\" via StringSetAsync()");
bool stringSetResult = await _redisConnection.BasicRetryAsync(async (db) => await db.StringSetAsync(key, value));
Console.WriteLine($"{prefix}: Cache response: {stringSetResult}");
Console.WriteLine($"{Environment.NewLine}{prefix}: Cache command: GET {key} via StringGetAsync()");
getMessageResult = await _redisConnection.BasicRetryAsync(async (db) => await db.StringGetAsync(key));
Console.WriteLine($"{prefix}: Cache response: {getMessageResult}");
// Store serialized object to cache
Employee e007 = new Employee("007", "Davide Columbo", 100);
stringSetResult = await _redisConnection.BasicRetryAsync(async (db) => await db.StringSetAsync("e007", JsonSerializer.Serialize(e007)));
Console.WriteLine($"{Environment.NewLine}{prefix}: Cache response from storing serialized Employee object: {stringSetResult}");
// Retrieve serialized object from cache
getMessageResult = await _redisConnection.BasicRetryAsync(async (db) => await db.StringGetAsync("e007"));
Employee e007FromCache = JsonSerializer.Deserialize<Employee>(getMessageResult);
Console.WriteLine($"{prefix}: Deserialized Employee .NET object:{Environment.NewLine}");
Console.WriteLine($"{prefix}: Employee.Name : {e007FromCache.Name}");
Console.WriteLine($"{prefix}: Employee.Id : {e007FromCache.Id}");
Console.WriteLine($"{prefix}: Employee.Age : {e007FromCache.Age}{Environment.NewLine}");
}
Item cache dapat disimpan dan diambil menggunakan metode StringSetAsync
dan StringGetAsync
.
Dalam contoh, Anda dapat melihat kunci Message
diatur ke nilai. Aplikasi memperbarui nilai cache tersebut. Aplikasi juga menjalankan PING
dan perintah.
Menggunakan objek .NET di cache
Server Redis menyimpan sebagian besar data sebagai string, tetapi string ini dapat berisi banyak jenis data, termasuk data biner terserialisasi, yang dapat digunakan saat menyimpan objek .NET di cache.
Azure Cache for Redis dapat men-cache objek .NET dan jenis data primitif. Tetapi sebelum objek .NET dapat di-cache, objek tersebut harus diserialisasikan.
Serialisasi objek .NET ini adalah tanggung jawab pengembang aplikasi, serta memberikan fleksibilitas kepada pengembang dalam pilihan serializer.
Salah satu cara sederhana untuk melakukan serialisasi objek adalah dengan menggunakan metode serialisasi JsonConvert
di System.text.Json
.
Tambahkan namespace layanan System.text.Json
ke Visual Studio:
Pilih Alat>NuGet Package Manager>Package Manager Console*.
Kemudian, jalankan perintah berikut dari jendela Package Manager Console.
Install-Package system.text.json
Kelas Employee
berikut ditentukan dalam Program.cs sehingga sampel juga dapat menunjukkan cara mendapatkan dan mengatur objek berseri :
class Employee
{
public string Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public Employee(string employeeId, string name, int age)
{
Id = employeeId;
Name = name;
Age = age;
}
}
Jalankan sampel
Tekan Ctrl+F5 untuk membuat dan menjalankan aplikasi konsol untuk menguji serialisasi objek .NET.
Membersihkan sumber daya
Jika Anda terus menggunakan mulai cepat ini, Anda dapat menyimpan sumber daya yang Anda buat dan menggunakannya kembali.
Jika tidak, jika Anda telah selesai dengan aplikasi sampel panduan mulai cepat, Anda dapat menghapus sumber daya Azure yang dibuat di panduan mulai cepat ini untuk menghindari biaya.
Penting
Menghapus grup sumber daya tidak bisa dibatalkan dan grup sumber daya serta semua sumber daya di dalamnya akan dihapus secara permanen. Pastikan Anda tidak salah menghapus grup sumber daya atau sumber daya secara tidak sengaja. Jika Anda membuat sumber daya untuk menghosting sampel ini dalam grup sumber daya yang ada yang berisi sumber daya yang ingin disimpan, Anda dapat menghapus setiap sumber daya satu per satu dari bilahnya, bukan menghapus grup sumber daya.
Masuk ke portal Microsoft Azure, lalu pilih Grup sumber daya.
Di kotak teks Filter menurut nama..., ketik nama grup sumber daya Anda. Petunjuk untuk artikel ini menggunakan grup sumber daya bernama TestResources. Pada grup sumber daya Anda dalam daftar hasil, pilih ... lalu Hapus grup sumber daya.
Anda akan diminta untuk mengonfirmasi penghapusan grup sumber daya. Ketik nama grup sumber daya Anda untuk mengonfirmasi, dan pilih Hapus.
Setelah beberapa saat, grup sumber daya dan semua sumber daya di dalamnya akan dihapus.