Dukungan untuk beberapa database Redis dengan Infinispan
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:
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:
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:
- Toko terus menampilkan produk menggunakan data terkini (
current_catalog
menunjuk ke arahcatalog_snapshot_1
). - Saat pelanggan menelusuri, data produk baru dimuat ke dalamnya
catalog_snapshot_2
di latar belakang. - Sekali
catalog_snapshot_2
telah diperbarui sepenuhnya, alias (current_catalog
) dialihkan ke menunjuk kecatalog_snapshot_2
. - 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.
Pada langkah terakhir, Anda dapat meninjau konfigurasi di JSON, XMLAtau YAML format.
Saat Anda membuat cache dengan alias, daftar akan menampilkan alias cache. Anda dapat memfilter cache berdasarkan nama atau alias menggunakan kolom “cari berdasarkan”.
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.
Kotak dialog modal akan terbuka. Anda dapat menambah atau menghapus alias dari sana.
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.
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.
Pilih itu RESP.DIST model dan buat cache. Model ini dirancang khusus untuk cache RESP.
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
.
Sekarang kita memiliki cache dengan alias 1
kita 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]