第一步: 安装环境
window环境安装参考:https://www.redis.com.cn/redis-installation.html
linux环境安装参考:https://www.redis.com.cn/linux-install-redis.html
第二步: nodejs中使用
1、安装redis模块
npm install redis@3 --save
2、创建两个文件redis.js、redis-client.js
// redis.js
var redis = require('redis')
const port = 6379
const pwd = 'redis123456' // 连接密码
var client = redis.createClient(port, '127.0.0.1', {
auth_pass: pwd
}) //端口号、主机
// 配置redis的监听事件
// 准备连接redis-server事件
client.on('ready', function () {
console.log('Redis连接成功')
})
// 连接到redis-server回调事件
client.on('connect', function () {
// console.log('redis is now connected!')
})
client.on('reconnecting', function () {
console.log('redis reconnecting')
})
client.on('end', function () {
console.log('Redis Closed!')
})
client.on('warning', function () {
console.log('Redis client: warning')
})
client.on('error', function (err) {
console.error('Redis Error ' + err)
})
// 导出redis-client对象
module.exports = client
// redis-client.js
// 引用redisClient对象
const redisClient = require('./redis')
/**
* redis set function
* @param key
* @param value
* @param expire
*/
const set = (key, value, expire) => {
return new Promise((resolve, reject) => {
redisClient.set(key, value, function (err, result) {
if (err) {
reject(err)
}
if (!isNaN(expire) && expire > 0) {
redisClient.expire(key, parseInt(expire)) //有效时间单位是秒
}
resolve(result)
})
})
}
/**
* redis get function
* @param key
*/
const get = (key) => {
return new Promise((resolve, reject) => {
redisClient.get(key, function (err, result) {
if (err) {
reject(err)
}
resolve(result)
})
})
}
/**
* redis remove function
* @param key
*/
const remove = (key) => {
return new Promise((resolve, reject) => {
redisClient.get(key, function (err, result) {
if (err) {
reject(err)
}
redisClient.expire(key, parseInt(-1))
resolve(result)
})
})
}
// rpush 将给定值推入列表的右端 返回值 当前列表长度
const rpush = (key, token) => {
return new Promise((resolve, reject) => {
redisClient.rpush(key, [token], function (err, result) {
if (err) {
reject(err)
}
resolve(result)
})
})
}
// 查询list的值
const lrange = (key, startIndex = 0, stopIndex = -1) => {
return new Promise((resolve, reject) => {
redisClient.lrange(key, startIndex, stopIndex, function (err, result) {
if (err) {
reject(err)
}
resolve(result)
})
})
}
// 清除list中n个值为value的项
const lrem = (key, n = 1, value) => {
return new Promise((resolve, reject) => {
redisClient.lrem(key, n, value, function (err, result) {
if (err) {
reject(err)
}
resolve(result)
})
})
}
module.exports = {
get,
set,
remove,
rpush,
lrange,
lrem
}
在其他文件中调用测试
// test redis connect
let {set, get, remove, rpush, lrange, lrem} = require('./redis/redis-client')
set('test2', '1').then(res => {
console.log(res);
})
get('test').then(res => {
console.log(res);
})
查看运行结果
使用redis-cli查看redis缓存数据