下载依赖:
//全局安装
brew install redis
//启动redis
brew services start redis
//验证redis是否在运行
redis-cli ping
//pong
这里使用的redis版本是4
npm install express-session redis connect-redis
//app.js
const express = require('express')
//redis配置
const session = require('express-session');
const RedisStore = require('connect-redis').default
const redisClient = require("./redis/redis")
// 配置redis
app.use(session({
// store session存储实例,默认为一个新的 MemoryStore 实例。
store: new RedisStore({ client: redisClient }), //只需设置这个就可存储到redis
name: 'session_id', //默认connect.sid
secret: 'lanya', //设置签名秘钥 内容可以任意填写
resave: false, // 强制保存,如果session没有被修改也要重新保存,默认true(推荐false)
saveUninitialized: true, //如果原先没有session那么就设置,否则不设置(推荐true)
/* 设置cookie的过期时间,sessiion的过期时间会随cookie自动更改,
也可以只设置session过期时间,cookie也跟着更改(两者只能选1个,效果一样)*/
cookie: { // 全局设置cookie,就是访问随便api就会设置cookie,也可以在登录的路由下单独设置
maxAge: 1000 * 30 * 60, //过期时间(毫秒
httpOnly: true // 是否允许客户端修改cookie,(默认true 不能被修改)
// secure: true //https这样的情况才可以访问cookie,默认false(推荐)
},
// rolling: true //在每次请求时强行设置 cookie,这将重置 cookie 过期时间(默认:false推荐false)
}));
//redis.js
const redis = require('redis');
// 创建Redis客户端
const redisClient = redis.createClient({
host: 'localhost',
port: 6379,
// 如果需要密码,使用password选项
// password: 'yourpassword'
});
redisClient.connect()
module.exports = redisClient
使用方法:
const lanyaMiniController = {
seasonInfoQuery: async function (req, res, next) {
try {
let result = await client.get('seasonInfo')
res.send({ code: 200, msg: '操作成功', data: JSON.parse(result) })
} catch (error) {
res.send({ code: 500, msg: '操作失败' })
}
},
seasonInfoChange: async function (req, res, next) {
try {
await client.set('seasonInfo', JSON.stringify(req.body))
res.send({ code: 200, msg: '操作成功' })
} catch (error) {
res.send({ code: 500, msg: '操作失败' })
}
},
}