Rumah > pangkalan data > Redis > teks badan

Cara menggunakan Redis dan TypeScript untuk membangunkan fungsi pertahanan penembusan cache

WBOY
Lepaskan: 2023-09-21 16:34:53
asal
1214 orang telah melayarinya

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan