是否曾經嘗試在 Windows 上運行 Redis,卻發現沒有官方支援?不用擔心!在我自己與這個問題作鬥爭之後(並且關閉了一兩次生產伺服器?),我找到了三種可靠的方法來讓 Redis 在 Windows 上運行,以及一個簡潔的速率限制實現。
docker pull redis docker run --name redis-test -p 6379:6379 -d redis
專業版: 與生產環境完全一樣
缺點: Docker Desktop 可能會佔用大量資源
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
專業版:輕量級
缺點: WSL 網路可能很棘手
redis-cli
專業版: 作為 Windows 服務運作
缺點: 未得到官方支援
我最近需要對 Firebase 專案進行速率限制。雖然 Firebase 很棒,但它對於速率限制來說並不理想,因為:
然而,Redis 是完美的,因為:
這是一個可以正常運作的乾淨的 Express 中間件:
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 } }
從 Firebase 切換到 Redis 以進行速率限制:
✅ 適合:
❌ 若出現以下情況請跳過:
90% 的 Redis 連線問題是因為:
Redis 可能不正式支援 Windows,但透過這些方法,您就可以了。具體來說,對於速率限制,這就像使用賽車而不是普通汽車 - 當然,兩者都可以讓你到達那裡,但其中一個是專門為速度而設計的!
編碼愉快! ?
P.S. - 始終記住在花費數小時調試連接問題之前啟動 Redis。相信我這個。 ?
以上是Windows 上的 Redis 和速率限制:實用指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!