在使用Redis之前,需要通过npm安装相应的Redis模块。在命令行中执行以下命令:
npm install redis
在使用Redis之前,需要先连接到Redis服务器。可以使用以下代码来连接到本地Redis服务器:
const redis = require('redis');
const client = redis.createClient();
如果Redis服务器不在本地,可以通过以下方式来连接:
const redis = require('redis');
const client = redis.createClient({
host: 'redis-server',
port: 6379
});
可以使用set
方法来设置缓存:
const key = 'mykey';
const value = 'myvalue';
client.set(key, value, (err, reply) => {
console.log(reply);
});
第一个参数是缓存的键,第二个参数是缓存的值。第三个参数是一个回调函数,当缓存设置成功时会调用该函数。
可以使用get
方法来获取缓存:
const key = 'mykey';
client.get(key, (err, reply) => {
console.log(reply);
});
第一个参数是要获取的缓存的键,第二个参数是一个回调函数,当缓存获取成功时会调用该函数。
可以使用expire
方法来设置缓存的过期时间:
const key = 'mykey';
const value = 'myvalue';
const expireTime = 60; // 过期时间为60秒
client.set(key, value, (err, reply) => {
console.log(reply);
client.expire(key, expireTime); // 设置过期时间
});
在上面的例子中,缓存会在60秒后过期。
可以使用del
方法来删除缓存:
const key = 'mykey';
client.del(key, (err, reply) => {
console.log(reply);
});
第一个参数是要删除的缓存的键,第二个参数是一个回调函数,当缓存删除成功时会调用该函数。
可以使用Redis作为Express的中间件,以便在路由处理程序中使用缓存。
const express = require('express');
const redis = require('redis');
const client = redis.createClient();
const app = express();
// Redis中间件
app.use((req, res, next) => {
const key = req.url;
client.get(key, (err, reply) => {
if (reply) {
res.send(reply);
} else {
res.sendResponse = res.send;
res.send = (body) => {
client.set(key, body);
res.sendResponse(body);
}
next();
}
});
});
// 路由处理程序
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server is listening on port 3000');
});
在上面的例子中,如果缓存存在,则直接返回缓存数据。如果缓存不存在,则继续执行路由处理程序,并在路由处理程序执行完毕后将路由返回的数据缓存起来。