1.在koa框架中使用redis
npm install redis -S
2.redis连接配置
注意:这种写法会出现一个bug,如下:
看到这个问题让我一直以为服务器中的端口不通,如果碰到这个问题可以先看下redis服务是否启动,redis端口是否添加到防火墙,端口是否添加服务器安全组,(这里我都开放了,却还是出现这个问题),可以使用下面的命令测试redis是否可以连接成功
telnet [服务器ip] [服务port]
eg: telnet 25.36.123.9 6379
在把这些问题排查后,发现我在node中的配置文件创建redis的实例写法有问题,应该这么写
const redis = require('redis')
const client = redis.createClient({
url: 'redis://:123456@3.10.24.32:6379'
})
client.connect()
const setValue = (key,value)=>{
if (typeof value === 'undefined' || value===null || value ==='') {
return
}
if (typeof value === 'string') {
return client.set(key,value)
}else if (typeof value === 'object'){
Object.keys(value).forEach(item=>{
client.hset(key,item,value[item],redis.print)
})
}
}
const {promisify} = require('util');
const getAsync = promisify(client.get).bind(client)
const getHValue = (key)=>{
return promisify(client.hgetall).bind(client)(key)
}
const getValue = (key)=>{
return getAsync(key)
}
module.exports={
client,
setValue,
getValue,
getHValue
}
这样就可以使用redis缓存了,但是当我想把创建redis实例的url用一个变量保存并调用的时候,创建redis实例却一直超时,这就很让我不解,如果有大佬路过看到了这个问题可不可以留言告知一下【不甚感激】