• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

连接redis时报错The client is closed,注意redis4和redis3的不同

武飞扬头像
狗狗的仙女大人
帮助1

Node.js 连接redis时报错:The client is closed
贴一下报错信息:
学新通
看下自己装的是不是v4版本的redis。v4版本的使用方式和v3略有不同。

解决方法一

退回到v3版本:

npm uninstall redis
npm install redis@3.1.2 --save

解决方法二

在代码里加上:

 redisClient.connect()

完整示例:

const redis = require('redis')

// 创建客户端
const redisClient = redis.createClient(6379, '127.0.0.1')

// 连接客户端和服务端【多了这步!!】
redisClient.connect().then(() => {
  console.log('Redis connection is successful!')
}).catch(console.error)

// 简单测试一下
redisClient.set('name', 'gougou')
redisClient.get('name', (err, val) => {
  if(err) return console.error(err)
  console.log('name:', val)
})
// 退出
redisClient.quit()
学新通

执行一下看下打印结果:
学新通
ok,连接成功啦!

知识点补充

redis v4版本最大的不同应该是支持了await写法。
可以去npm看下官方的基本示例:
学新通
所以我们安装了v4的话,可以这样写:

const redis = require('redis')

!(async function() {
  // 创建客户端
  const redisClient = redis.createClient(6379, '127.0.0.1')
  // 监听错误
  redisClient.on('error', (err) => console.log('Redis Client Error', err));
  // 连接
  await redisClient.connect()
  console.log('Redis connection is successful!')

  // 简单测试一下
  await redisClient.set('name', 'suli')
  const name = await redisClient.get('name')
  console.log('name:', name)

  // 退出
  redisClient.quit()
})()
学新通

看下执行结果:
学新通

补充:如果看的这样的报错,注意一下是否忘了启动redis。勿忘redis-server
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfkfgk
系列文章
更多 icon
同类精品
更多 icon
继续加载