Rumah pangkalan data Redis Cara menggunakan Redis dan Node.js untuk melaksanakan fungsi storan teragih

Cara menggunakan Redis dan Node.js untuk melaksanakan fungsi storan teragih

Jul 31, 2023 pm 04:57 PM
nodejs redis 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
Salin selepas log masuk

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);
});
Salin selepas log masuk

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);
});
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Membina Mod Kluster Redis Cara Membina Mod Kluster Redis Apr 10, 2025 pm 10:15 PM

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 membersihkan data redis Cara membersihkan data redis Apr 10, 2025 pm 10:06 PM

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.

Cara Membaca Gilir Redis Cara Membaca Gilir Redis Apr 10, 2025 pm 10:12 PM

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.

Cara menggunakan perintah redis Cara menggunakan perintah redis Apr 10, 2025 pm 08:45 PM

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).

Cara menggunakan kunci redis Cara menggunakan kunci redis Apr 10, 2025 pm 08:39 PM

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.

Cara Mengkonfigurasi Masa Pelaksanaan Skrip Lua di Centos Redis Cara Mengkonfigurasi Masa Pelaksanaan Skrip Lua di Centos Redis Apr 14, 2025 pm 02:12 PM

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)

Cara menggunakan baris arahan redis Cara menggunakan baris arahan redis Apr 10, 2025 pm 10:18 PM

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.

Cara Mengoptimumkan Prestasi Debian Readdir Cara Mengoptimumkan Prestasi Debian Readdir Apr 13, 2025 am 08:48 AM

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

See all articles