Rumah pangkalan data Redis Cara menggunakan Redis dan TypeScript untuk membangunkan fungsi pertahanan penembusan cache

Cara menggunakan Redis dan TypeScript untuk membangunkan fungsi pertahanan penembusan cache

Sep 21, 2023 pm 04:34 PM
redis typescript Pertahanan penembusan cache

Cara menggunakan Redis dan TypeScript untuk membangunkan fungsi pertahanan penembusan cache

Cara menggunakan Redis dan TypeScript untuk membangunkan fungsi pertahanan penembusan cache

Penembusan cache bermakna apabila pengguna menanyakan data yang tidak wujud, kerana tiada data yang sepadan dalam cache, pangkalan data akan diakses terus setiap kali , menyebabkan pangkalan data menjadi Terlalu banyak tekanan. Untuk menyelesaikan masalah ini, kita boleh menggunakan Redis dan TypeScript untuk membangunkan fungsi pertahanan penembusan cache.

1. Pasang dan konfigurasikan Redis

Pertama, kita perlu memasang Redis dan mengkonfigurasinya. Pada sistem Ubuntu, Redis boleh dipasang melalui arahan berikut:

sudo apt-get install redis-server
Salin selepas log masuk

Selepas pemasangan, Redis akan berjalan dalam mod tempatan dan mendengar port lalai 6379 secara lalai. Kemudian, kita perlu mengkonfigurasi beberapa parameter Redis untuk digunakan.

Dalam fail konfigurasi Redis, cari konfigurasi berikut dan nyahkomennya:

# bind 127.0.0.1 ::1
Salin selepas log masuk

Ubah suai kepada:

bind 0.0.0.0
Salin selepas log masuk

Dengan cara ini, Redis akan dapat mendengar pada alamat IP selain daripada setempat.

Simpan dan keluar dari fail konfigurasi, dan kemudian mulakan semula perkhidmatan Redis:

sudo service redis-server restart
Salin selepas log masuk

2. Pasang dan konfigurasikan TypeScript

Seterusnya, kita perlu memasang dan mengkonfigurasi TypeScript. Mula-mula, pastikan anda memasang Node.js dan npm.

Kemudian, pasang TypeScript secara global melalui arahan berikut:

npm install -g typescript
Salin selepas log masuk

Buat projek TypeScript baharu dan mulakan npm:

mkdir cache-protection
cd cache-protection
npm init -y
Salin selepas log masuk

Pasang dependensi TypeScript yang diperlukan:

npm install redis ioredis express
npm install --save-dev @types/redis @types/ioredis @types/express
Salin selepas log masuk

3. Tulis kod

Next, kita mula menulis cache. Kod untuk menembusi fungsi pertahanan. Mula-mula, buat fail bernama index.ts dalam direktori akar projek.

import express, { Request, Response } from 'express';
import Redis from 'ioredis';

const app = express();
const redis = new Redis();

// 缓存查询的函数
async function getDataFromCache(key: string): Promise<string | null> {
  return await redis.get(key);
}

// 从数据库查询数据的函数
async function getDataFromDb(key: string): Promise<string | undefined> {
  // 模拟从数据库查询的过程
  const dataFromDb = {
    '1': 'data1',
    '2': 'data2',
    '3': 'data3',
  };

  return dataFromDb[key];
}

// 将数据写入缓存的函数
async function setDataToCache(key: string, data: string): Promise<string> {
  return await redis.set(key, data);
}

// Express路由处理函数
app.get('/data/:id', async (req: Request, res: Response) => {
  const dataId = req.params.id;
  const cacheKey = `data:${dataId}`;

  // 尝试从缓存中获取数据
  let data = await getDataFromCache(cacheKey);

  // 如果缓存中没有数据,则从数据库中查询并写入缓存
  if (!data) {
    data = await getDataFromDb(dataId);
    if (data) {
      await setDataToCache(cacheKey, data);
    }
  }

  // 返回结果
  if (data) {
    res.send(data);
  } else {
    res.send('Data not found');
  }
});

// 启动Express服务
app.listen(3000, () => {
  console.log('Server is running on port 3000');
});
Salin selepas log masuk

Perihalan kod:

  1. Import dahulu perpustakaan yang diperlukan, termasuk ekspres, redis dan ioredis.
  2. Buat tika nyata dan buat tika redis.
  3. Melaksanakan tiga fungsi asas: mendapatkan data daripada cache, mendapatkan data daripada pangkalan data dan menulis data ke cache.
  4. Menulis fungsi pemprosesan penghalaan Ekspres untuk menerima permintaan dan mengembalikan data yang sepadan.
  5. Mulakan perkhidmatan Ekspres dan dengar pada port 3000.

4 Jalankan kod

Dalam baris arahan, gunakan arahan berikut untuk menyusun kod TypeScript ke dalam JavaScript:

tsc index.ts
Salin selepas log masuk

Kemudian, jalankan kod JavaScript yang disusun:

node index.js
Salin selepas log masuk

Sekarang, anda boleh mengaksesnya dengan melawati http ://localhost :3000/data/1 untuk menguji fungsi pertahanan penembusan cache. Akses pertama akan mengambil data daripada pangkalan data dan menulis data ke cache. Mengakses URL yang sama sekali lagi akan mengambil data terus daripada cache.

Ringkasan:

Artikel ini memperkenalkan cara menggunakan Redis dan TypeScript untuk membangunkan fungsi pertahanan penembusan cache. Melalui gabungan fungsi pertanyaan cache, fungsi pertanyaan data daripada pangkalan data, dan fungsi cache penulisan data, kami boleh mengurangkan akses kepada pangkalan data dan meningkatkan prestasi sistem dengan berkesan. Pada masa yang sama, ciri membaca dan menulis berkelajuan tinggi Redis dapat mengatasi situasi capaian serentak yang tinggi dengan lebih baik.

Saya harap artikel ini dapat membantu kerja pembangunan anda!

Atas ialah kandungan terperinci Cara menggunakan Redis dan TypeScript untuk membangunkan fungsi pertahanan penembusan cache. 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 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 Menetapkan Dasar Tamat Redis Cara Menetapkan Dasar Tamat Redis Apr 10, 2025 pm 10:03 PM

Terdapat dua jenis strategi tamat tempoh data REDIS: Penghapusan berkala: Imbasan berkala untuk memadamkan kunci yang telah tamat tempoh, yang boleh ditetapkan melalui parameter-cap-cap-rempah yang telah tamat tempoh dan parameter kelewatan-cap-remove-time-time. Penghapusan Lazy: Periksa kekunci yang telah tamat tempoh hanya apabila kunci dibaca atau ditulis. Mereka boleh ditetapkan melalui parameter lazon-lazy-expire-expire-expire, lazy-lazy-user-del parameter.

Pengoptimuman Prestasi PostgreSQL di bawah Debian Pengoptimuman Prestasi PostgreSQL di bawah Debian Apr 12, 2025 pm 08:18 PM

Untuk meningkatkan prestasi pangkalan data PostgreSQL dalam sistem Debian, adalah perlu untuk secara komprehensif mempertimbangkan perkakasan, konfigurasi, pengindeksan, pertanyaan dan aspek lain. Strategi berikut dapat mengoptimumkan prestasi pangkalan data dengan berkesan: 1. Pengembangan Memori Pengoptimuman Sumber Perkakasan: Memori yang mencukupi adalah penting untuk data cache dan indeks. Penyimpanan berkelajuan tinggi: Menggunakan pemacu SSD SSD dapat meningkatkan prestasi I/O dengan ketara. Pemproses Multi-Core: Buat penggunaan penuh pemproses pelbagai teras untuk melaksanakan pemprosesan pertanyaan selari. 2. Parameter pangkalan data penalaan shared_buffers: Menurut tetapan saiz memori sistem, disarankan untuk menetapkannya kepada 25% -40% memori sistem. Work_mem: Mengawal ingatan pengendalian dan operasi hashing, biasanya ditetapkan kepada 64MB hingga 256m

See all articles