Instance Elastic Compute Service (ECS) yang dioptimalkan untuk memori persisten, seperti dan instance re6p-redis, memiliki rasio CPU-memori yang tinggi serta dapat menjalankan aplikasi Redis dengan biaya lebih rendah per GiB memori. Topik ini menjelaskan cara cepat menerapkan Redis pada instance yang dioptimalkan untuk memori persisten. Contoh-contoh dalam topik ini menggunakan sistem operasi tertentu.
Informasi latar belakang
Prosedur yang dijelaskan dalam topik ini hanya berlaku untuk jenis instance dan versi gambar berikut:
Tipe Instance: ecs.re6p-redis.large, ecs.re6p-redis.xlarge, ecs.re6p-redis.2xlarge, ecs.re6p-redis.4xlarge, dan ecs.re6p-redis.13xlarge
Versi Gambar:
Alibaba Cloud Linux 2
CentOS 7.6 dan yang lebih baru
Ubuntu 18.04 dan 20.04
Deploy Redis pada instance yang menjalankan Alibaba Cloud Linux 2
Alibaba Cloud Linux 2 telah dioptimalkan khusus untuk aplikasi Redis. Aplikasi Redis yang diterapkan pada Alibaba Cloud Linux 2 menunjukkan performa lebih dari 20% lebih unggul dibandingkan dengan aplikasi Redis yang diterapkan pada sistem operasi yang didukung komunitas.
Repositori YUM untuk Redis 6.0.5 dan Redis 3.2.12 sudah terpasang di Alibaba Cloud Linux 2. Anda dapat menjalankan perintah sudo yum install untuk menerapkan Redis 6.0.5 atau Redis 3.2.12. Untuk informasi lebih lanjut tentang penerapan versi lainnya, lihat bagian Deploy Redis pada Instance yang Menjalankan CentOS dan Deploy Redis pada Instance yang Menjalankan Ubuntu.
Konfigurasi berikut digunakan dalam contoh ini:
Tipe Instance: ecs.re6p-redis.2xlarge
Gambar: Alibaba Cloud Linux 2.1903 LTS 64-bit
Beli instance yang dioptimalkan untuk memori persisten.
Untuk informasi lebih lanjut, lihat Buat Instance di Tab Peluncuran Kustom. Perhatikan konfigurasi berikut:
Instance: Pilih Memory-optimized dari daftar drop-down x86 di bagian Arsitektur, lalu pilih tipe instance ecs.re6p-redis.2xlarge.
Image: Pilih Alibaba Cloud Linux 2.1903 LTS 64-bit.
Masuk ke instance.
Untuk informasi lebih lanjut, lihat Metode untuk Menghubungkan ke Instance ECS.
Terapkan Redis 6.0.5 atau Redis 3.2.12 sesuai kebutuhan bisnis Anda.
Jalankan perintah berikut untuk menerapkan Redis 6.0.5:
sudo yum install -y alinux-release-experimentals && \ sudo yum install -y redis-6.0.5Jalankan perintah berikut untuk menerapkan Redis 3.2.12:
sudo yum install -y alinux-release-experimentals && \ sudo yum install -y redis-3.2.12
Mulai Redis dan konfigurasikan jumlah default memori biasa dan memori persisten yang dialokasikan ke Redis.
Contoh perintah:
Jalankan perintah berikut untuk menyetel rasio memori biasa terhadap memori persisten menjadi nilai yang direkomendasikan yaitu 1:4:
export MEMKIND_DAX_KMEM_NODES=1 && \ sudo redis-server /etc/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 4 --hashtable-on-dram yes --daemonize yes --logfile /tmp/redis_8369.log --protected-mode no --bind 0.0.0.0Anda dapat menentukan rasio memori biasa terhadap memori persisten yang berbeda dan mengalokasikan memori biasa tertentu ke aplikasi lain. Sebagai contoh, jalankan perintah berikut untuk menyetel rasio memori biasa terhadap memori persisten menjadi 1:16 dan mengalokasikan total 34 GiB memori ke Redis, termasuk 2 GiB memori biasa dan 32 GiB memori persisten:
export MEMKIND_DAX_KMEM_NODES=1 && \ sudo redis-server /etc/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 16 --maxmemory 34G
Deploy Redis pada instance yang menjalankan CentOS
Konfigurasi berikut digunakan dalam contoh ini:
Tipe Instance: ecs.re6p-redis.2xlarge
Gambar: CentOS 7.6
Redis: Redis 4.0.14
memkind: memkind 1.10.1-rc2
Unduh sumber daya yang diperlukan dari https://github.com/ sebelum melakukan langkah-langkah berikut. Jika sumber daya tidak dapat diunduh dari GitHub, ulangi perintah terkait hingga sumber daya berhasil diunduh.
Beli instance yang dioptimalkan untuk memori persisten.
Untuk informasi lebih lanjut, lihat Buat Instance di Tab Peluncuran Kustom. Perhatikan konfigurasi berikut:
Instance: Pilih Memory-optimized dari daftar drop-down x86 di bagian Arsitektur, lalu pilih tipe instance ecs.re6p-redis.2xlarge.
Image: Pilih CentOS 7.6 64-bit.
Masuk ke instance.
Untuk informasi lebih lanjut, lihat Metode untuk Menghubungkan ke Instance ECS.
Persiapkan lingkungan kompilasi.
export MEMKIND_DAX_KMEM_NODES=1 && \ sudo yum -y install numactl-devel.x86_64 && \ sudo yum -y groupinstall 'Development Tools'Persiapkan kode sumber Redis 4.0.14.
sudo wget https://github.com/redis-io/redis/archive/4.0.14.tar.gz && \ sudo wget https://github.com/redis/redis/compare/4.0.14...tieredmemdb:4.0.14-devel.diff -O redis_4.0.14_diff_tieredmemdb.patch && \ tar xzvf 4.0.14.tar.gz && \ cd redis-4.0.14 && \ git apply --ignore-whitespace ../redis_4.0.14_diff_tieredmemdb.patchCatatanPatch ini digunakan untuk mengaktifkan memori persisten dan bervariasi berdasarkan versi Redis. Untuk informasi lebih lanjut, lihat bagian Unduh Patch yang Mengaktifkan Redis untuk Menggunakan Memori Persisten.
Persiapkan kode sumber memkind.
memkind adalah alat manajemen memori yang digunakan untuk mengalokasikan dan mengelola memori persisten.
Unduh kode sumber memkind.
sudo wget https://github.com/memkind/memkind/archive/v1.10.1-rc2.tar.gz && \ tar xzvf v1.10.1-rc2.tar.gz && \ mv memkind-1.10.1-rc2/* ./deps/memkindOpsional: Sesuaikan Makefile.
CatatanAnda dapat menjalankan perintah
ldd --versionuntuk melihat versi glibc. Jika versi glibc adalah 2.17 atau lebih baru, lewati operasi berikut dan kompilasi Redis.cd ./deps/memkind && \ sudo wget https://github.com/memKeyDB/memKeyDB/wiki/files/0001-Use-secure_getenv-when-possible.patch && \ git apply --ignore-whitespace 0001-Use-secure_getenv-when-possible.patch && \ cd ../../CatatanJika patch tidak dapat diunduh, jalankan perintah yang tidak mencakup perintah
cd ./deps/memkind && \.
Kompilasi dan instal Redis.
make clean && \ make distclean && \ make MALLOC=memkind -j 4 && \ sudo make installMulai Redis dan konfigurasikan jumlah default memori biasa dan memori persisten yang dialokasikan ke Redis.
Contoh perintah:
CatatanGanti /home/user dengan direktori pengguna aktual.
Jalankan perintah berikut untuk menyetel rasio memori biasa terhadap memori persisten menjadi nilai yang direkomendasikan yaitu 1:4:
redis-server /home/user/redis-4.0.14/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 4 --hashtable-on-dram yes --daemonize yes --logfile /tmp/redis_8369.log --protected-mode no --bind 0.0.0.0Anda dapat menentukan rasio memori biasa terhadap memori persisten yang berbeda dan mengalokasikan memori biasa tertentu ke aplikasi lain. Sebagai contoh, jalankan perintah berikut untuk menyetel rasio memori biasa terhadap memori persisten menjadi 1:16 dan mengalokasikan total 34 GiB memori ke Redis, termasuk 2 GiB memori biasa dan 32 GiB memori persisten:
redis-server /home/user/redis-4.0.14/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 16 --maxmemory 34G
Deploy Redis pada instance yang menjalankan Ubuntu
Konfigurasi berikut digunakan dalam contoh ini:
Tipe Instance: ecs.re6p-redis.2xlarge
Gambar: Ubuntu 20.04
Redis: Redis 6.2.5
memkind: memkind 1.10.1-rc2
Unduh sumber daya yang diperlukan dari https://github.com/ sebelum melakukan langkah-langkah berikut. Jika sumber daya tidak dapat diunduh dari GitHub, ulangi perintah terkait hingga sumber daya berhasil diunduh.
Beli instance yang dioptimalkan untuk memori persisten.
Untuk informasi lebih lanjut, lihat Buat Instance di Tab Peluncuran Kustom. Perhatikan konfigurasi berikut:
Instance: Pilih Memory-optimized dari daftar drop-down x86 di bagian Arsitektur, lalu pilih tipe instance ecs.re6p-redis.2xlarge.
Image: Pilih Ubuntu 20.04 64-bit.
Masuk ke instance.
Untuk informasi lebih lanjut, lihat Metode untuk Menghubungkan ke Instance ECS.
Persiapkan lingkungan kompilasi.
export MEMKIND_DAX_KMEM_NODES=1 && \ sudo apt update && \ sudo apt -y install git && \ sudo apt install -y libnuma-dev && \ sudo apt install -y numactlPersiapkan kode sumber Redis 6.2.5.
sudo wget https://download.redis.io/releases/redis-6.2.5.tar.gz && \ sudo wget https://github.com/redis/redis/compare/6.2.5...tieredmemdb:6.2.5-devel.diff -O redis_6.2.5_diff_tieredmemdb.patch && \ tar xzf redis-6.2.5.tar.gz && \ cd redis-6.2.5 && \ git apply --ignore-whitespace ../redis_6.2.5_diff_tieredmemdb.patchCatatanPatch ini digunakan untuk mengaktifkan memori persisten dan bervariasi berdasarkan versi Redis. Untuk informasi lebih lanjut, lihat bagian Unduh Patch yang Mengaktifkan Redis untuk Menggunakan Memori Persisten.
Persiapkan kode sumber memkind.
memkind adalah alat manajemen memori yang digunakan untuk mengalokasikan dan mengelola memori persisten.
Unduh kode sumber memkind.
sudo wget https://github.com/memkind/memkind/archive/v1.10.1-rc2.tar.gz && \ tar xzvf v1.10.1-rc2.tar.gz && \ mv memkind-1.10.1-rc2/* ./deps/memkind/Sesuaikan Makefile.
CatatanAnda dapat menjalankan perintah
ldd --versionuntuk melihat versi glibc. Jika versi glibc adalah 2.17 atau lebih baru, lewati operasi berikut dan kompilasi Redis.cd ./deps/memkind && \ sudo wget --no-check-certificate https://github.com/memKeyDB/memKeyDB/wiki/files/0001-Use-secure_getenv-when-possible.patch && \ git apply --ignore-whitespace 0001-Use-secure_getenv-when-possible.patch && \ cd ../../CatatanJika patch tidak dapat diunduh, jalankan perintah yang tidak mencakup perintah
cd ./deps/memkind && \.
Kompilasi dan instal Redis.
make clean && \ make distclean && \ make MALLOC=memkind -j 4 && \ sudo make installMulai Redis dan konfigurasikan jumlah default memori biasa dan memori persisten yang dialokasikan ke Redis.
Contoh perintah:
CatatanGanti /home/user dengan direktori pengguna aktual.
Jalankan perintah berikut untuk menyetel rasio memori biasa terhadap memori persisten menjadi nilai yang direkomendasikan yaitu 1:4:
redis-server /home/user/redis-6.2.5/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 4 --hashtable-on-dram yes --daemonize yes --logfile /tmp/redis_8369.log --protected-mode no --bind 0.0.0.0Anda dapat menentukan rasio memori biasa terhadap memori persisten yang berbeda dan mengalokasikan memori biasa tertentu ke aplikasi lain. Sebagai contoh, jalankan perintah berikut untuk menyetel rasio memori biasa terhadap memori persisten menjadi 1:16 dan mengalokasikan total 34 GiB memori ke Redis, termasuk 2 GiB memori biasa dan 32 GiB memori persisten:
redis-server /home/user/redis-6.2.5/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 16 --maxmemory 34G
Unduh patch yang mengaktifkan Redis untuk menggunakan memori persisten
Dalam perintah contoh, ganti URL unduhan dan nomor versi yang sesuai dengan nama file. Sebagai contoh, jalankan perintah berikut untuk mengunduh patch yang cocok untuk Redis 6.2.5:
sudo wget https://github.com/redis/redis/compare/6.2.5...tieredmemdb:6.2.5-devel.diff -O redis_6.2.5_diff_tieredmemdb.patchBerikut ini menyediakan URL unduhan untuk patch yang didukung:
Redis 6.2
https://github.com/redis/redis/compare/6.2.5...tieredmemdb:6.2.5-devel.diff
Redis 6.0
https://github.com/redis/redis/compare/6.0.9...tieredmemdb:6.0.9-devel.diff
https://github.com/redis/redis/compare/6.0.5...tieredmemdb:6.0.5-devel.diff
https://github.com/redis/redis/compare/6.0.3...tieredmemdb:6.0.3-devel.diff
https://github.com/redis/redis/compare/6.0.0...tieredmemdb:6.0.0-devel.diff
Redis 5.0
Redis 4.0
https://github.com/redis/redis/compare/4.0.14...tieredmemdb:4.0.14-devel.diff
https://github.com/redis/redis/compare/4.0.9...tieredmemdb:4.0.9-devel.diff
https://github.com/redis/redis/compare/4.0.2...tieredmemdb:4.0.2-devel.diff
https://github.com/redis/redis/compare/4.0.0...tieredmemdb:4.0.0-devel.diff
Redis 3.0
https://github.com/redis/redis/compare/3.2.12...tieredmemdb:3.2.diff