Flazzo memiliki fokus utama untuk menambah nilai bisnis Anda.

Blog

Dukungan untuk beberapa database Redis dengan Infinispan

18020134-thumb.jpg
Blog

Dukungan untuk beberapa database Redis dengan Infinispan

[ad_1]

Di Infinispan 15, kami telah menyediakan sejumlah besar perintah untuk memungkinkan penggantian server Redis Anda dengan Infinispan tanpa mengubah kode Anda. Dalam tutorial ini, Anda akan mempelajari bagaimana alias cache Infinispan akan membantu Anda mengganti server Redis Anda dengan Infinispan untuk beberapa database Redis.

  • Poin-poin penting:
    • Apa itu alias cache dan cara membuat cache dengan alias atau memperbarui yang sudah ada
    • Pelajari perbedaan Infinispan dan Redis dalam organisasi data
    • Mendukung banyak database di Infinispan dengan alias cache saat menggunakan protokol RESP

Dukungan untuk beberapa database Redis telah tersedia sejak Infinispan 15.0 (rilis stabil terbaru pada saat penulisan ini). Namun, dukungan untuk Hot Rod, CLI dan Konsol Infinispan adalah pratinjau teknis di Infinispan 15.1 (sedang dalam pengembangan).

Redis hot swap untuk Infinispan

Sejak Infinispan 15, Anda dapat menggunakan Infinispan sebagai hot swap untuk Redis karena mendukung sebagian besar perintah Redis melalui protokol RESP. Ini berfungsi karena Server Infinispan mengaktifkan titik akhir RESP secara default. Klien Redis akan secara otomatis terhubung dan dialihkan ke konektor internal Infinispan.

Menjalankan Server Infinispan dan Menggunakan Klien Redis

Menguji klien Redis dengan Server Infinispan sangat sederhana.

Pertama, jalankan server Infinispan seperti yang dijelaskan di “Tutorial memulai.”

  • Penting: Alias ​​cache berfungsi sepenuhnya pada versi 15.1.0.Dev04. Pastikan Anda memotret yang terakhir 15.1 gambar secara lokal.

Baris perintah dengan Docker atau Podman:

docker run -it -p 11222:11222 -e USER="admin" -e PASS="password" quay.io/infinispan/server:15.1

podman run -it -p 11222:11222 -e USER="admin" -e PASS="password" --net=host quay.io/infinispan/server:15.1

Selanjutnya login ke Infinispan menggunakan Redis-CLI.

Gunakan pelabuhan 11222 bukannya default 6379. Karena Infinispan aman secara default, pastikan untuk memberikan kredensial administrator.

> redis-cli -p 11222 --user admin --pass password
127.0.0.1:11222> set hello world
OK
127.0.0.1:11222> get hello
"world"

Itu saja!

Jika Anda bertanya-tanya di mana data disimpan, itu ada di “respCache”. Ini adalah cache default yang digunakan oleh konektor Infinispan RESP, dan sudah dikonfigurasi sebelumnya dengan default yang wajar. Ini siap digunakan dan merupakan pengganti yang baik untuk Redis. Harap dicatat bahwa mulai Infinispan 15.1, daftar cache penampung data menyertakan kolom baru yang disebut “Alias”. Kami akan membahasnya lagi nanti.

Konsol Server Infinispan di (admin/kata sandi) kredensial:

Konsol Server Infinispan dalam Kredensial (Administrator/Kata Sandi)

Basis data Redis dan cache Infinispan

Di Redis, database pada dasarnya adalah namespace yang terpisah dan terisolasi dalam satu server Redis. Setiap database dapat menyimpan kumpulan pasangan kunci-nilainya sendiri-sendiri secara terpisah.

Secara default, Redis menyediakan 16 database, bernomor 0 hingga 15. Anda dapat beralih di antara database ini menggunakan SELECT memesan. Fitur ini membantu mengatur data dan mengisolasi aplikasi atau kasus penggunaan yang berbeda dalam instance Redis yang sama, meskipun penting untuk diperhatikan bahwa semua database berbagi ruang memori dan konfigurasi pengaturan yang sama.

Infinispan, di sisi lain, menggunakan model cache terdistribusi di mana data tersebar di beberapa node. Ia tidak menggunakan konsep database terpisah; sebaliknya, ia mengatur data menggunakan cache, yang dapat dikonfigurasi dengan pengaturan berbeda dan dipartisi di seluruh cluster. Data didistribusikan dan direplikasi ke beberapa node, sehingga memberikan ketersediaan dan skalabilitas yang tinggi. Tidak ada persamaan langsung dengan database Redis, namun data dapat disegmentasi menggunakan cache dan konfigurasi yang berbeda.

Berikut adalah tabel yang menunjukkan perbedaan utama antara database Redis dan cache Infinispan:

Tabel yang merangkum perbedaan utama antara database Redis dan cache Infinispan

Jika konektor Infinispan defaultnya adalah satu cache bernama “respCache,” Anda dapat mendukung beberapa database Redis — menggunakan alias tembolok.

Tembolok Alias

Di Infinispan, alias cache adalah nama alternatif yang bisa Anda berikan pada cache. Mereka memungkinkan Anda merujuk ke konfigurasi cache dasar yang sama menggunakan nama berbeda. Alias ​​cache di Infinispan memungkinkan peralihan yang efisien antara versi atau status data cache yang berbeda, tanpa harus mengubah atau memuat ulang logika aplikasi Anda. Hal ini membuat alias cache sangat berguna dalam skenario ketika data perlu diperbarui, namun Anda ingin memastikan ketersediaan tinggi dan dampak minimal terhadap kinerja aplikasi.

Kasus Penggunaan untuk Alias ​​Cache

Alias ​​cache di Infinispan sangat bagus untuk menangani perubahan data tanpa mengganggu aplikasi Anda. Ini memungkinkan Anda dengan mudah beralih di antara snapshot data. Anda dapat terus menggunakan data versi lama sambil memuat yang baru. Saat data baru sudah siap, cukup ubah aliasnya agar mengarah ke data tersebut, tanpa waktu henti. Performa dan ketersediaan tinggi lebih baik karena aplikasi Anda tidak menyentuh cache saat memperbarui, aplikasi berfungsi dengan benar, tanpa kelambatan atau kesalahan. Jika terjadi kesalahan, Anda dapat segera kembali dan berpindah ke versi data sebelumnya dengan alias.

Misalnya, bayangkan sebuah toko online yang perlu memperbarui katalognya:

  1. Toko terus menampilkan produk menggunakan data terkini (current_catalog menunjuk ke arah catalog_snapshot_1).
  2. Saat pelanggan menelusuri, data produk baru dimuat ke dalamnya catalog_snapshot_2 di latar belakang.
  3. Sekali catalog_snapshot_2 telah diperbarui sepenuhnya, alias (current_catalog) dialihkan ke menunjuk ke catalog_snapshot_2.
  4. Orang tua itu catalog_snapshot_1 cache sekarang bebas untuk dibersihkan dan digunakan untuk pembaruan berikutnya.

Situs web memperbarui data katalognya tanpa menyebabkan penundaan atau waktu henti yang signifikan bagi pengguna.

Buat cache dengan alias

Sebelum mempelajari cara menggunakan alias cache untuk protokol RESP dan beberapa database, mari pelajari terlebih dahulu cara membuat dan memperbarui alias cache. Ada beberapa cara untuk membuat cache atau konfigurasi cache di Infinispan, namun favorit saya adalah menggunakan Konsol Server Infinispan.

Jalankan server Infinispan dan akses konsol seperti yang dijelaskan dalam “Tutorial Memulai”.

Untuk membuat cache, gunakan wizard pembuatan cache dengan mengklik ikon “Buat cache” tombol.

Selama langkah pengaturan cache, Anda akan menemukan “Alias” pilihan, di mana Anda dapat menambahkan alias sebanyak yang Anda inginkan.

Buat cache lokal LON

Pada langkah terakhir, Anda dapat meninjau konfigurasi di JSON, XMLAtau YAML format.

Konfirmasikan cache Anda

Saat Anda membuat cache dengan alias, daftar akan menampilkan alias cache. Anda dapat memfilter cache berdasarkan nama atau alias menggunakan kolom “cari berdasarkan”.

Memfilter cache

Menambahkan alias saat runtime

Untuk cache yang ada, kabar baik! Atribut alias dalam konfigurasi cache dapat diubah pada saat run time. Anda dapat melakukannya dengan beberapa cara:

  • Menggunakan Admin API di Hotrod
  • Menggunakan CLI Server Infinispan (CLI)
  • Gunakan servernya Menghibur Atau ISTIRAHAT API

Untuk melakukan operasi ini Anda memerlukan akses ADMIN di Infinispan.

Gunakan klien Hotrod

Untuk mengubah alias saat runtime, gunakan Admin API. Di bawah ini adalah contoh mode klien/server. Jika Anda menggunakan Infinispan Embedded di aplikasi Anda, API serupa tersedia.

RemoteCacheManager remoteCacheManager = // created or injected if using Quarkus or Spring Boot
remoteCacheManager.administration().updateConfigurationAttribute("myCache", "aliases", "alias alias2");
RemoteCache cacheFromAlias = cacheManager.getCache("alias");

Menggunakan Alat Baris Perintah

Alat baris perintah (CLI) Infinispan menyediakan cara untuk mengubah alias cache saat runtime.

Pertama, jalankan CLI dengan perintah berikut:

podman or docker run -it --net=host infinispan/cli

Dari baris perintah, sambungkan ke server yang sedang berjalan:

[disconnected]> connect
Username: admin
Password: ********
[6b0130c153e3-50183@cluster//containers/default]>

Kemudian gunakan alter cache perintah untuk memperbarui aliases atribut:

alter cache myCache2 --attribute=aliases --value=current_catalog

Terakhir, jelaskan konfigurasi cache dan verifikasi perubahannya:

[6b0130c153e3-50183@cluster//containers/default]> describe caches/myCache2
{
  "myCache2" : {
    "distributed-cache" : {
      "aliases" : [ "current_catalog" ],
      "owners" : "2",
      "mode" : "SYNC",
      "statistics" : true,
      "encoding" : {
        "media-type" : "application/x-protostream"
      }
    }
  }
}

Nasihat: Gunakan help memesan.

[6b0130c153e3-50183@cluster//containers/default]> alter cache -h
Usage: alter cache [] 
Alters a cache configuration

Options:
--attribute  The configuration attribute
--value      The value for the configuration attribute. If the attribute supports multiple values, separate them with commas
-f, --file
-h, --help

Argument:
The cache name

Menggunakan konsol server

Dalam daftar cache, pilih Sunting alias tindakan.

Dalam daftar cache, pilih tindakan Ubah Alias

Kotak dialog modal akan terbuka. Anda dapat menambah atau menghapus alias dari sana.
Menambah atau menghapus alias

Dukungan untuk banyak database

Mari kita coba memilih database 0 Dan 1 menggunakan Redis CLI. Untuk mengubah database di Redis, gunakan SELECT perintah diikuti dengan nomor database. Mari kita coba lagi dengan Infinispan.

Pertama, gunakan SELECT 0 mulai di basis data 0. Kemudian gunakan SELECT 1 beralih ke basis data 1.

> redis-cli  --user admin --pass password
127.0.0.1:11222[1]> select 0
OK
127.0.0.1:11222[1]> select 1
(error) ERR DB index is out of range

Basis data 0 berfungsi, tetapi basis data 1 ini tidak terjadi. Melihat lebih dekat pada respCache konfigurasi, kita melihat default respCache dengan alias "0" didefinisikan.

RespCache default dengan alias "0" didefinisikan

Untuk memilih basis data “1” Anda perlu membuat cache baru. Mari gunakan konsol Infinispan lagi untuk melakukan ini. Buka Wizard Buat Cache dan pilih “tambahkan konfigurasi cache” pilihan kali ini.

Buka Wizard Buat Cache dan pilih opsi "tambahkan konfigurasi cache" pilihan kali ini

Pilih itu RESP.DIST model dan buat cache. Model ini dirancang khusus untuk cache RESP.

Pilih model RESP.DIST dan buat cache

Akhirnya, tambahkan alias “1” ke cache baru seperti yang dijelaskan di bagian menambahkan alias saat runtime. Anda juga dapat menyalin dan menempelkan konfigurasi dari respCache ganti alias 0 alias 1.

Tambahkan alias "1" ke cache baru

Sekarang kita memiliki cache dengan alias 1kita dapat memilih dan menambahkan data berikut:

> redis-cli  --user admin --pass password
127.0.0.1:11222[1]> select 0
OK
127.0.0.1:11222[1]> select 1
OK
127.0.0.1:11222[1]> set hello word
OK

Penting untuk ditekankan bahwa, tidak seperti database Redis, setiap cache dapat dikonfigurasi secara berbeda bergantung pada kebutuhan aplikasi Anda. Hal ini memungkinkan Anda memanfaatkan konfigurasi fleksibel Infinispan (misalnya, Anda dapat menambahkan cadangan menggunakan replikasi lintas situs untuk beberapa “database” dan tidak semua) sambil menjaga kemudahan penggunaan klien Redis dalam aplikasi Anda.

Kesimpulan

Dalam tutorial ini, Anda mempelajari cara menggunakan beberapa database dengan protokol RESP dan cara menggunakan cache Infinispan sebagai pengganti database Redis. Dengan menggunakan cache yang berbeda dan bukan database Redis, Anda mendapatkan beberapa keuntungan seperti yang ditunjukkan. Kini Anda dapat memenuhi kebutuhan data Anda dengan cara yang lebih fleksibel dan efisien, disesuaikan dengan skenario spesifik Anda. Anda juga mempelajari apa itu alias cache dan seberapa bergunanya dalam berbagai situasi, tidak hanya di database Redis.

[ad_2]