Node.js : redis 和 ioredis 的基本使用
- 前言
- 正文
- redie的安装和使用
- ioredie的使用
- 封装所需要用到的ioredis方法
前言
此篇内容记录本人编程过程中所遇到的一些问题和解决的办法。内容仅供参考,有些内容引用别处。[非商用,如侵删]
正文
因为项目的内容设计到缓存的知识点,所以在网上查询后决定初步学习一下node中对redis的一些基本操作,只接触到一些基本操作~
redie的安装和使用
github : https://github.com/microsoftarchive/redis/releases
官网https://redis.io/ 这两个搞不清有什么区别…有大佬知道的可以评论区告诉我一下
我选择的是下载github上的,图上标注了下载位置
下载过来是一个安装包,找到你要存放的位置 解压开就好了 他是个绿色的软件 解压即用!!赞!
然后每个文件具体的作用没有去深究 直接开始使用把 在该文件夹目录下输入cmd 就可以进入命令窗口了
输入如下命令
.\redis-server.exe redis.windows.conf
就可以跳出图上显示的这个数据库一样的图标就说明启动了 ,接下去但是登录,然后这里要把prot 记一下 我的是6379 后面要用。
这里注意!!! 不要关闭这个窗口 也不要在这个命令行窗口中操作!!!
另外在这个文件夹目录下开一个窗口
输入如下命令:
.\redis-cli.exe -h 127.0.0.1 -p 6379
//-h 是你的ip地址 -p是端口号 就是刚刚的port 还有一个 -a 是密码 但是我目前没有设置 有需要的话 要在config里面设置下
如图 输入ping 返回PONG就是连接成功
在这个页面上的具体的操作命令连接 Redis 命令参考
然后就可以接下去下一步的ioredis操作了
ioredie的使用
安装的话就和正常的安装nodejs里的包一样
npm和yarn两种都可以,看你喜好
npm install ioredis //npm 安装
-------------------------------
yarn add ioredis //yarn 安装
然后就是使用了 :
为了代码简洁,我是把配置文件放在了另一个文件里,你直接用也可以
redisConfing.js
let redisConfig = {}
redisConfig={
prot :6379, // 端口号
host:'127.0.0.1', // ip
password:'', // 密码 同上文 我没有设置有的话你可以写 还有一些参数我没有去了解
}
module.exports={
redisConfig
}
redis.js
// 引入 ioredis 包
const redis = require('ioredis')
// 引入配置文件 需要传入给实例对象
const { redisConfig } = require('../config/RedisConfig')
// 创建实例 连接NoSQL服务器
const client = new redis(redisConfig)
module.exports={
client
}
到这里 就可以执行一些CRUD的操作了,(其实感觉就是一种数据库操作)
封装所需要用到的ioredis方法
然后我自己分装了几个需要用到的方法不解释了 上码
// 引入 redis 实例对象
const {client} = require('../database/Redis')
// Promise async/await 封装
// ->向redis中定时存储数据
async function setRedis(key, value) {
// 存储
await client.set(key, value, (err, data) => {
// 为key 设定一个时长 单位为S
client.expire(key, 60)
if (err) {
console.log(err);
}
console.log('redis store Success!', data);
return data //成功会返回ok
})
}
// Promise async/await 封装
// ->查询 rides 库中是否有该Key 用于判断Token是否过期
async function queryRedis(key) {
const result = await client.exists(key)
// 判断该值是否为空 如果为空返回null
if (result === 0) {
console.log('result:<','<'+result+'>','This key is null...');
return null
}
console.log('Result:','<'+result+'>','With this value!...');
return result
}
// Promise async/await 封装
// ->获取 rides 库中该 Key 的 value
async function getRedis(key) {
const result = await client.get(key)
if(result === null){
console.log('result:','<'+result+'>', 'This key cannot be find...')
return null
}
console.log('Result:','<'+result+'>','Get key success!...');
return result
}
// Promise async/await 封装
// ->为 rides 库中的一个key 设定过期的时间 单位为秒(S)
async function timeSetRedis(key,time){
// 设定时间
const result = await client.expire(key,time)
if(result === 0){
console.log('Result','<'+ result+'>','Set defeated or key not find...');
return null
}
// console.log(result);
console.log('Result','<'+ result+'>','Set Success!');
return result
}
module.exports={
setRedis,
getRedis,
queryRedis,
timeSetRedis
}
有写的不对的地方欢迎批评指正,我对redis和ioredis也是了解了一点点~
本文帮助和我一样对Node如何使用时感觉困惑的人!