Redis pada Windows & Had Kadar: Panduan Praktikal

DDD
Lepaskan: 2024-10-11 10:35:02
asal
349 orang telah melayarinya

Redis on Windows & Rate Limiting: A Practical Guide

Pernah cuba menjalankan Redis pada Windows sahaja untuk mengetahui tiada sokongan rasmi? jangan risau! Selepas bergelut dengan ini sendiri (dan menurunkan pelayan pengeluaran sekali atau dua kali ?), saya telah menemui tiga cara yang boleh dipercayai untuk menjalankan Redis pada Windows, serta pelaksanaan yang kemas untuk mengehadkan kadar.

Mendapatkan Redis pada Windows

1. The Docker Way (Disyorkan untuk Pasukan)

docker pull redis
docker run --name redis-test -p 6379:6379 -d redis
Salin selepas log masuk

Pro: Berfungsi sama seperti pengeluaran
Con: Docker Desktop boleh menjadi sumber yang berat

2. Kaedah WSL (Hebat untuk Projek Peribadi)

wsl --install  # In PowerShell as admin
# Install Ubuntu from Microsoft Store, then:
sudo apt update
sudo apt install redis-server
sudo service redis-server start
Salin selepas log masuk

Pro: Ringan
Kontra: Rangkaian WSL boleh menjadi rumit

3. Binaan Windows (Persediaan Paling Mudah)

  • Muat turun MSI daripada tporadowski/redis
  • Pasang dan mulakan perkhidmatan:
redis-cli
Salin selepas log masuk

Pro: Berjalan sebagai perkhidmatan Windows
Con: Tidak disokong secara rasmi

Mengapa Redis untuk Mengehadkan Kadar?

Baru-baru ini saya memerlukan pengehadan kadar untuk projek Firebase. Walaupun Firebase hebat, ia tidak sesuai untuk mengehadkan kadar kerana:

  • Menulis kaunter ke Firestore/RTDB adalah lambat dan mahal
  • Had terbina dalam adalah asas dan tidak fleksibel

Redis, bagaimanapun, adalah sempurna kerana:

  • Respons sub-milisaat
  • Operasi atom
  • Kunci tamat tempoh automatik
  • Sangat murah untuk dijalankan

Kod Had Kadar Mudah

Berikut ialah perisian tengah Express yang bersih yang hanya berfungsi:

const Redis = require('ioredis');
const redis = new Redis();

async function rateLimit(req, res, next) {
  const key = `limit:${req.ip}`;
  const limit = 100; // requests per window
  const window = 3600; // 1 hour in seconds

  try {
    const hits = await redis.incr(key);

    if (hits === 1) {
      await redis.expire(key, window);
    }

    if (hits > limit) {
      return res.status(429).json({
        message: "Slow down there, speed racer!"
      });
    }

    next();
  } catch (err) {
    console.error('Redis error:', err);
    next(); // Fail open
  }
}
Salin selepas log masuk

Nombor Nyata Yang Penting

Bertukar daripada Firebase kepada Redis untuk mengehadkan kadar:

  • Semakan had kadar: ~100ms → ~1ms
  • Kos bulanan: Turun ~$30
  • Kerumitan kod: Potong separuh

Bila Untuk Menggunakan Persediaan Ini

✅ Sesuai untuk:

  • Penghadan kadar API
  • Pengurusan sesi
  • kaunter/bendera pantas
  • Apabila anda memerlukan kelajuan

❌ Langkau jika:

  • Trafik yang sangat rendah (< 100 permintaan/minit)
  • Menggunakan Gateway API dengan pengehad kadar terbina dalam
  • API Dalaman sahaja

Penyelesaian Masalah Pantas

90% isu sambungan Redis adalah kerana:

  1. Redis tidak berjalan (semak perkhidmatan)
  2. Port/hos salah (lalai: localhost:6379)
  3. Isu rangkaian WSL/Docker (semak alamat IP)

Bungkus

Redis mungkin tidak menyokong Windows secara rasmi, tetapi dengan kaedah ini, anda dilindungi. Untuk mengehadkan kadar secara khusus, ia seperti menggunakan kereta lumba dan bukannya kereta biasa - pasti, kedua-duanya akan membawa anda ke sana, tetapi satu direka khas untuk kelajuan!

Selamat pengekodan! ?


P.S. - Sentiasa ingat untuk memulakan Redis sebelum menghabiskan masa berjam-jam menyahpepijat masalah sambungan. Percayakan saya tentang yang ini. ?

Atas ialah kandungan terperinci Redis pada Windows & Had Kadar: Panduan Praktikal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!