Linux下Node.js的緩存策略主要包括以下幾類,可根據場景選擇:
HTTP緩存
通過設置響應頭(如Cache-Control
、ETag
)控制客戶端或代理服務器緩存,適用于靜態資源或低頻更新數據。
res.set('Cache-Control', 'public, max-age=3600'); // 緩存1小時
內存緩存
Map
存儲數據,適合臨時數據。node-cache
:支持過期時間、自動清理。lru-cache
:基于LRU算法,適合緩存大小有限的場景。const NodeCache = require('node-cache');
const cache = new NodeCache({ stdTTL: 300 }); // 5分鐘過期
cache.set('key', 'value');
文件緩存
將數據持久化存儲到文件系統,適合需跨進程或重啟后保留的緩存,如配置文件。
const fs = require('fs');
fs.writeFileSync('cache.json', JSON.stringify(data));
const cachedData = JSON.parse(fs.readFileSync('cache.json'));
分布式緩存
適用于多實例、高并發場景,通過Redis、Memcached等實現跨服務共享緩存。
const redis = require('redis');
const client = redis.createClient();
client.setex('key', 3600, JSON.stringify(data)); // 緩存1小時
其他策略
選擇策略時需權衡數據一致性、性能需求和系統復雜度,例如高頻數據用內存緩存,跨服務數據用分布式緩存。