Instans dengan memori persisten, seperti dan re6p-redis, menawarkan rasio CPU terhadap memori yang tinggi, sehingga memungkinkan Anda menjalankan aplikasi Redis dengan biaya per GiB memori yang jauh lebih rendah. Topik ini menjelaskan cara cepat menerapkan aplikasi Redis pada instans tersebut untuk beberapa sistem operasi.
Informasi latar belakang
Langkah-langkah penerapan cepat aplikasi Redis dalam topik ini berlaku untuk tipe instans dan versi gambar tertentu dengan persyaratan sebagai berikut:
-
Tipe instans: ecs.re6p-redis.large, ecs.re6p-redis.xlarge, ecs.re6p-redis.2xlarge, ecs.re6p-redis.4xlarge, ecs.re6p-redis.13xlarge
-
Versi gambar
-
Alibaba Cloud Linux 2
-
CentOS 7.6 dan versi yang lebih baru
-
Ubuntu 18.04 dan 20.04
-
Deploy Redis applications in Alibaba Cloud Linux 2
Alibaba Cloud Linux 2 secara khusus dioptimalkan untuk aplikasi Redis dan meningkatkan kinerja keseluruhan aplikasi Redis lebih dari 20% dibandingkan sistem operasi komunitas.
Alibaba Cloud Linux 2 menyertakan repositori yum bawaan untuk Redis 6.0.5 dan Redis 3.2.12. Anda dapat menjalankan perintah sudo yum install untuk menginstal versi tersebut atau menerapkan versi Redis lainnya secara manual. Untuk informasi selengkapnya, lihat Deploy Redis applications in CentOS dan Deploy Redis applications in Ubuntu.
Sumber daya dalam bagian ini dikonfigurasi sebagai berikut:
-
Tipe instans: ecs.re6p-redis.2xlarge
-
Gambar: Alibaba Cloud Linux 2.1903 LTS 64-bit
-
Beli instans memori persisten.
Untuk informasi selengkapnya, lihat Create a custom instance. Perhatikan konfigurasi berikut:
-
Instance: Di bawah arsitektur x86-Compute, klik Memory-optimized Type dan pilih tipe instans ecs.re6p-redis.2xlarge.
-
Images: Pilih Alibaba Cloud Linux 2.1903 LTS 64-bit.
-
-
Login ke instans.
Untuk informasi selengkapnya, lihat Connection methods.
-
Terapkan Redis 6.0.5 atau Redis 3.2.12 sesuai kebutuhan.
-
Untuk menerapkan Redis 6.0.5:
sudo yum install -y alinux-release-experimentals && \ sudo yum install -y redis-6.0.5 -
Untuk menerapkan Redis 3.2.12:
sudo yum install -y alinux-release-experimentals && \ sudo yum install -y redis-3.2.12
-
-
Jalankan aplikasi Redis dan konfigurasikan kapasitas DRAM serta memori persisten.
Berikut adalah contoh perintahnya:
-
Rasio DRAM terhadap memori persisten yang direkomendasikan adalah 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.0 -
Anda juga dapat menyesuaikan rasio DRAM terhadap memori persisten untuk menyisakan sebagian DRAM bagi aplikasi lain. Misalnya, Anda dapat mengatur rasionya menjadi 1:16 dan mengalokasikan memori sebesar 34 GiB, yang terdiri dari 2 GiB DRAM 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 applications in CentOS
Sumber daya dan perangkat lunak dalam bagian ini dikonfigurasi sebagai berikut:
-
Tipe instans: ecs.re6p-redis.2xlarge
-
Gambar: CentOS 7.6
-
Redis: Redis 4.0.14
-
memkind: memkind 1.10.1-rc2
Pastikan sumber daya diunduh dari https://github.com/ sebelum melanjutkan. Jika pengunduhan gagal, jalankan kembali perintah hingga pengunduhan berhasil.
-
Beli instans memori persisten.
Untuk informasi selengkapnya, lihat Create a custom instance. Perhatikan konfigurasi berikut:
-
Instance: Untuk arsitektur x86-Compute, klik Memory-optimized Type dan pilih tipe instans ecs.re6p-redis.2xlarge.
-
Images: Pilih CentOS 7.6 (64-bit).
-
-
Login ke instans.
Untuk informasi selengkapnya, lihat Connection methods.
-
Siapkan lingkungan kompilasi.
export MEMKIND_DAX_KMEM_NODES=1 && \ sudo yum -y install numactl-devel.x86_64 && \ sudo yum -y groupinstall 'Development Tools' -
Siapkan 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 mengaktifkan memori persisten. Versi Redis yang berbeda memerlukan patch yang berbeda. Untuk informasi selengkapnya, lihat Download patches to enable persistent memory.
-
Siapkan kode sumber memkind.
memkind adalah tool 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 -
Opsional: Sesuaikan makefile.
CatatanAnda dapat menjalankan
ldd --versionuntuk memeriksa versi glibc. Jika versi glibc 2.17 atau lebih baru, Anda dapat melewati langkah-langkah berikut dan langsung mengompilasi 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 pengunduhan patch gagal, jangan sertakan
cd ./deps/memkind && \saat menjalankan perintah lagi.
-
-
Kompilasi dan instal Redis.
make clean && \ make distclean && \ make MALLOC=memkind -j 4 && \ sudo make install -
Jalankan aplikasi Redis dan konfigurasikan kapasitas DRAM serta memori persisten.
Berikut adalah contoh perintahnya:
CatatanGanti /home/user dengan folder pengguna aktual.
-
Rasio DRAM terhadap memori persisten yang direkomendasikan adalah 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.0 -
Anda juga dapat menyesuaikan rasio DRAM terhadap memori persisten untuk menyisakan sebagian DRAM bagi aplikasi lain. Misalnya, Anda dapat mengatur rasionya menjadi 1:16 dan mengalokasikan memori sebesar 34 GiB, yang terdiri dari 2 GiB DRAM 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 applications in Ubuntu
Sumber daya dan perangkat lunak dalam bagian ini dikonfigurasi sebagai berikut:
-
Tipe instans: ecs.re6p-redis.2xlarge
-
Gambar: Ubuntu 20.04
-
Redis: Redis 6.2.5
-
memkind: memkind 1.10.1-rc2
Sebelum melanjutkan, pastikan sumber daya diunduh dari https://github.com/. Jika pengunduhan gagal, jalankan kembali perintah hingga pengunduhan berhasil.
-
Beli instans yang dioptimalkan untuk memori persisten.
Untuk informasi selengkapnya, lihat Create a custom instance. Perhatikan konfigurasi berikut:
-
Instance: Di bagian arsitektur x86-Compute, klik Memory-optimized Type dan pilih tipe instans ecs.re6p-redis.2xlarge.
-
Images: Pilih Ubuntu 20.04 64-bit.
-
-
Login ke instans.
Untuk informasi selengkapnya, lihat Connection methods.
-
Siapkan 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 numactl -
Siapkan 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. Versi Redis yang berbeda memerlukan patch yang berbeda. Untuk informasi selengkapnya, lihat Download patches to enable persistent memory.
-
Siapkan kode sumber memkind.
memkind adalah tool 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
ldd --versionuntuk memeriksa versi glibc. Jika versi glibc 2.17 atau lebih baru, Anda dapat melewati langkah-langkah berikut dan langsung mengompilasi 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 pengunduhan patch gagal, jangan sertakan
cd ./deps/memkind && \saat menjalankan perintah lagi.
-
-
Kompilasi dan instal Redis.
make clean && \ make distclean && \ make MALLOC=memkind -j 4 && \ sudo make install -
Jalankan aplikasi Redis dan konfigurasikan kapasitas DRAM serta memori persisten.
Berikut adalah contoh perintahnya:
CatatanGanti /home/user dengan path ke folder pengguna aktual.
-
Rasio DRAM terhadap memori persisten yang direkomendasikan adalah 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.0 -
Anda juga dapat menyesuaikan rasio DRAM terhadap memori persisten untuk menyisakan sebagian DRAM bagi aplikasi lain. Misalnya, Anda dapat mengatur rasionya menjadi 1:16 dan mengalokasikan memori sebesar 34 GiB, yang terdiri dari 2 GiB DRAM 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
-
Download patches to enable persistent memory
Ganti URL unduhan dan nomor versi dalam nama file pada contoh perintah. Misalnya, perintah untuk mengunduh patch untuk Redis 6.2.5 adalah sebagai berikut:
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
URL unduhan untuk patch yang didukung adalah sebagai berikut:
-
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