


Cara menggunakan Redis dan Node.js untuk melaksanakan fungsi storan teragih
Cara menggunakan Redis dan Node.js untuk melaksanakan fungsi storan teragih
Pengenalan:
Dalam era data besar moden, sistem storan teragih telah menjadi salah satu teknologi utama untuk menyelesaikan masalah penyimpanan data yang besar dan capaian pantas. Redis ialah pangkalan data dalam memori yang sangat popular, dan Node.js ialah masa jalan JavaScript bahagian pelayan yang cekap. Artikel ini akan memperkenalkan cara menggunakan Redis dan Node.js untuk melaksanakan fungsi storan teragih dan menyediakan contoh kod.
1. Gambaran Keseluruhan Redis
Redis ialah sistem pangkalan data dalam memori sumber terbuka berprestasi tinggi yang menyediakan struktur data yang kaya dan kaedah operasi data yang fleksibel. Dengan menyimpan data dalam ingatan, Redis boleh membaca dan menulis data dengan cepat, menjadikannya sesuai untuk senario konkurensi tinggi. Struktur data yang disokong oleh Redis termasuk rentetan, jadual cincang, senarai, set, set tersusun, dsb.
2 Sambungan antara Node.js dan Redis
Node.js menyediakan banyak perpustakaan klien Redis, yang boleh mewujudkan sambungan dengan Redis dan melakukan operasi data dengan mudah. Dalam artikel ini, kami akan menggunakan node-redis, perpustakaan klien Redis yang popular.
Mula-mula, kita perlu memasang node-redis dalam projek Node.js, yang boleh dipasang menggunakan arahan npm:
npm install redis
Kemudian, kita boleh memperkenalkan dan menyambungkan Redis dalam Node.js:
const redis = require("redis"); const client = redis.createClient(); client.on("error", function (err) { console.error("Redis连接错误: " + err); });
Dalam kod di atas , kita lulus Modul redis mencipta klien Redis dan menambah fungsi pengendalian ralat.
3. Gunakan Redis untuk melaksanakan storan teragih
Dalam storan teragih, kami biasanya menyimpan data secara berselerak pada nod yang berbeza untuk meningkatkan kebolehskalaan dan toleransi kesalahan sistem. Menggunakan Redis, kami boleh menyimpan data pada berbilang kejadian Redis dan menggunakan algoritma cincang yang konsisten untuk menentukan nod mana data harus disimpan.
Berikut ialah contoh kod untuk menggunakan Redis untuk storan teragih:
const redis = require("redis"); const crypto = require("crypto"); const nodes = ["redis://127.0.0.1:6379", "redis://127.0.0.1:6380", "redis://127.0.0.1:6381"]; // Redis节点 const ring = []; // 一致性哈希环 // 初始化一致性哈希环 nodes.forEach(function (node) { for (let i = 0; i < 64; i++) { const virtualNode = node + "/" + i; const hash = crypto.createHash("md5").update(virtualNode).digest("hex"); ring[hash] = node; } }); // 根据键获取对应的Redis节点 function getNode(key) { const hash = crypto.createHash("md5").update(key).digest("hex"); let pos = 0; for (let i = 0; i < ring.length; i++) { if (hash <= ring[i]) { pos = i; break; } } return ring[pos]; } // 查询键的值 function get(key) { return new Promise(function (resolve, reject) { const node = getNode(key); const client = redis.createClient(node); client.get(key, function (err, reply) { if (err) reject(err); else resolve(reply); client.quit(); }); }); } // 设置键的值 function set(key, value) { return new Promise(function (resolve, reject) { const node = getNode(key); const client = redis.createClient(node); client.set(key, value, function (err, reply) { if (err) reject(err); else resolve(reply); client.quit(); }); }); } // 示例:存储键值对 set("name", "Alice").then(function (reply) { console.log("设置成功"); }).catch(function (err) { console.error("设置失败: " + err); }); // 示例:获取键值对 get("name").then(function (reply) { console.log("获取成功: " + reply); }).catch(function (err) { console.error("获取失败: " + err); });
Dalam kod di atas, kami mula-mula menentukan tatasusunan nod Redis dan gelang cincang yang konsisten. Kemudian, nod dipetakan pada gelang cincang melalui algoritma pencincangan yang konsisten. Seterusnya, kami mentakrifkan dua fungsi, dapatkan dan tetapkan, untuk mendapatkan dan menetapkan pasangan nilai kunci nod. Akhir sekali, kami mempunyai contoh mudah yang menunjukkan cara menyimpan dan mendapatkan pasangan nilai kunci.
4. Ringkasan
Artikel ini memperkenalkan cara menggunakan Redis dan Node.js untuk melaksanakan fungsi storan teragih. Kami mewujudkan sambungan dengan Redis melalui nod-redis pustaka klien Redis, dan menggunakan algoritma pencincangan yang konsisten untuk menyimpan data secara tersebar pada nod yang berbeza. Melalui kod sampel, kami menunjukkan cara menyimpan dan mendapatkan semula data dalam sistem storan teragih.
Dengan memanfaatkan Redis dan Node.js untuk storan teragih, kami dapat membina sistem storan berprestasi tinggi dan berskala untuk menghadapi cabaran era data besar moden. Saya harap artikel ini akan membantu semua orang, dan anda dialu-alukan untuk meneroka lebih banyak senario aplikasi dan butiran teknikal tentang Redis dan Node.js.
Atas ialah kandungan terperinci Cara menggunakan Redis dan Node.js untuk melaksanakan fungsi storan teragih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Menggunakan Arahan Redis memerlukan langkah -langkah berikut: Buka klien Redis. Masukkan arahan (nilai kunci kata kerja). Menyediakan parameter yang diperlukan (berbeza dari arahan ke arahan). Tekan Enter untuk melaksanakan arahan. Redis mengembalikan tindak balas yang menunjukkan hasil operasi (biasanya OK atau -r).

Menggunakan REDIS untuk mengunci operasi memerlukan mendapatkan kunci melalui arahan SETNX, dan kemudian menggunakan perintah luput untuk menetapkan masa tamat tempoh. Langkah-langkah khusus adalah: (1) Gunakan arahan SETNX untuk cuba menetapkan pasangan nilai utama; (2) Gunakan perintah luput untuk menetapkan masa tamat tempoh untuk kunci; (3) Gunakan perintah DEL untuk memadam kunci apabila kunci tidak lagi diperlukan.

Pada sistem CentOS, anda boleh mengehadkan masa pelaksanaan skrip LUA dengan mengubah fail konfigurasi REDIS atau menggunakan arahan REDIS untuk mengelakkan skrip jahat daripada memakan terlalu banyak sumber. Kaedah 1: Ubah suai fail konfigurasi Redis dan cari fail konfigurasi Redis: Fail konfigurasi Redis biasanya terletak di /etc/redis/redis.conf. Edit Fail Konfigurasi: Buka fail konfigurasi menggunakan editor teks (seperti Vi atau nano): sudovi/etc/redis/redis.conf Tetapkan had masa pelaksanaan skrip lua: Tambah atau ubah suai baris berikut dalam fail konfigurasi untuk menetapkan masa pelaksanaan maksimum skrip lua (unit: milidor)

Gunakan alat baris perintah redis (redis-cli) untuk mengurus dan mengendalikan redis melalui langkah-langkah berikut: Sambungkan ke pelayan, tentukan alamat dan port. Hantar arahan ke pelayan menggunakan nama arahan dan parameter. Gunakan arahan bantuan untuk melihat maklumat bantuan untuk arahan tertentu. Gunakan perintah berhenti untuk keluar dari alat baris arahan.

Dalam sistem Debian, panggilan sistem Readdir digunakan untuk membaca kandungan direktori. Jika prestasinya tidak baik, cuba strategi pengoptimuman berikut: Memudahkan bilangan fail direktori: Split direktori besar ke dalam pelbagai direktori kecil sebanyak mungkin, mengurangkan bilangan item yang diproses setiap panggilan readdir. Dayakan Caching Kandungan Direktori: Bina mekanisme cache, kemas kini cache secara teratur atau apabila kandungan direktori berubah, dan mengurangkan panggilan kerap ke Readdir. Cafh memori (seperti memcached atau redis) atau cache tempatan (seperti fail atau pangkalan data) boleh dipertimbangkan. Mengamalkan struktur data yang cekap: Sekiranya anda melaksanakan traversal direktori sendiri, pilih struktur data yang lebih cekap (seperti jadual hash dan bukannya carian linear) untuk menyimpan dan mengakses maklumat direktori
