Nodejs安装并使用Redis实现服务器缓存能力
nodejs(express)使用redis服务,redis的安装、引入、封装、使用步骤。使用验证码获取的实际使用场景对redis的使用进行详细阐述
·
一、环境准备
1. 安装redis客户端(windows为例)
下载地址:https://github.com/tporadowski/redis/releases
Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis
以C:\Program Files\Redis为例
进入文件夹,执行以下命令启动redis客户端
cd C:\Program Files\Redis
redis-server.exe redis.windows.conf
出现此界面,就是运行成功了,默认端口6379
2. 项目安装redis依赖
npm install redis -S
二、引入redis封装基本方法
1. 引入redis
const { createClient } = require("redis");
2. 创建redis客户端
const redisClient = createClient({
url: 'redis://:123456@127.0.0.1:6379'
/*
* redis://[[username][:password]@][host][:port][/db-number]
* 写密码redis://:123456@127.0.0.1:6379/0
* 写用户redis://uername@127.0.0.1:6379/0
* 或者不写密码 redis://127.0.0.1:6379/0
* 或者不写db_number redis://:127.0.0.1:6379
* */
});
3. 连接redis
redisClient.on('ready', () => {
console.log('redis is ready...')
})
redisClient.on('error', err => {
console.log("err", err)
})
redisClient.connect() // 连接
4. 封装redis
以验证码为例设置代码
function Redis() {
// 设置验证码 过期时间默认5分钟
this.setVerifyCodeChangeEmail = async (email, code, time = 5) => {
let key = `VerifyCodeChangeEmail_${email}`
await redisClient.set(key, code, {
EX: time * 60 // 秒
})
}
// 获取验证码
this.getVerifyCodeChangeEmail = async (email) => {
let key = `VerifyCodeChangeEmail_${email}`
return (await redisClient.get(key).then(data => data)) || null;
}
// 删除验证码
this.deleteVerifyCodeChangeEmail = async (email) => {
let key = `VerifyCodeChangeEmail_${email}`
return await redisClient.del(key);
}
}
// 创建redis客户端实例并导出
const redis = new Redis();
module.exports = redis;
三、业务模块使用
下面以用户获取验证码业务为例展示步骤,由于业务细节不便泄漏,只展示使用步骤
1. 后台接口部分
// 引入封装的redis方法
const { setUserRelateVerifyCode } = require("../modules/redis");
// ......
// 生成验证码
let code = generateVerifyCode();
// 发送验证码
let sendFlag = await sendMessageMail(email, "修改邮箱验证", code).then(data => data).catch(err => null);
// 发送失败 响应客户端
if (!sendFlag) {
// ...
}
// ...
// ... 其他业务环节 ...
// ...
// 设置缓存 存入code
setVerifyCodeChangeEmail(email, code, config.codeTime).then(data => {
// 业务完成
}).catch(err => errcb(err, req, res))
2. 用户点击获取验证码
3. 查看redis缓存的值
redis-cli命令行中查询结果如下:
好了,至此redis在node中的使用结束,如有其他疑问可以留言或者发送至邮箱
864823609@qq.com。
感谢阅读!
之前搞了一个公众号:大壮计算机科学与技术。闲置很久了,没什么用户,就是分享下日常和技术帖子,大家捧捧场。
更多推荐
已为社区贡献2条内容
所有评论(0)