


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
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
Ubah suai kepada:
bind 0.0.0.0
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
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
Buat projek TypeScript baharu dan mulakan npm:
mkdir cache-protection cd cache-protection npm init -y
Pasang dependensi TypeScript yang diperlukan:
npm install redis ioredis express npm install --save-dev @types/redis @types/ioredis @types/express
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'); });
Perihalan kod:
- Import dahulu perpustakaan yang diperlukan, termasuk ekspres, redis dan ioredis.
- Buat tika nyata dan buat tika redis.
- Melaksanakan tiga fungsi asas: mendapatkan data daripada cache, mendapatkan data daripada pangkalan data dan menulis data ke cache.
- Menulis fungsi pemprosesan penghalaan Ekspres untuk menerima permintaan dan mengembalikan data yang sepadan.
- 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
Kemudian, jalankan kod JavaScript yang disusun:
node index.js
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!

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.

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.

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.

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
