当超过两次请求验证码时,后端就会报redis 连接错误

当超过两次请求验证码时,后端就会报redis 连接错误

当超过两次请求验证码时,后端就会报redis 连接错误https://img1.sycdn.imooc.com//climg/636b5da50994a12d24600868.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
Brian 2022-11-10 12:11:19

你的redis的配置文件发出来 看看?


可以参考一下课程的代码:https://git.imooc.com/class-130/api-start/src/master/src/config/RedisConfig.js


上面的代码是node-redis 4.x的

  • 提问者 xujunping #1
    import { createClient } from 'redis'
    import config from './index'
    import retryStrategy from 'node-redis-retry-strategy'
    
    const options = {
    password: config.REDIS.password,
    socket: {
    host: config.REDIS.host,
    port: config.REDIS.port,
    detect_buffers: true,
    reconnectStrategy: retryStrategy()
    }
    }
    
    const client = createClient(options)
    
    const initRedis = async () => {
    client.on('error', (err) => console.log('Redis Client Error', err))
    
    await client.connect()
    
    client.on('end', function () {
    console.log('redis connection has closed')
    })
    
    client.on('reconnecting', function (o) {
    console.log('redis client reconnecting', o.attempt, o.delay)
    })
    }
    
    const setValue = async (key, value, time) => {
    if (typeof value === 'undefined' || value === null || value === '') {
    return
    }
    if (typeof value === 'string') {
    if (typeof time !== 'undefined') {
    await client.set(key, value, { EX: time })
    } else {
    await client.set(key, value)
    }
    } else if (typeof value === 'object') {
    for (let index = 0; index < Object.keys(value).length; index++) {
    const item = Object.keys(value)[index]
    await client.hset(key, item, value[item], console.log)
    }
    }
    }
    
    const getValue = async (key) => {
    return await client.get(key)
    }
    
    const getHValue = async (key) => {
    return await client.hgetall(key)
    }
    
    const delValue = (key) => {
    client.del(key, (err, res) => {
    if (res === 1) {
    console.log('delete successfully')
    } else {
    console.log('delete redis key error' + err)
    }
    })
    }
    
    export { client, initRedis, getValue, getHValue, setValue, delValue }


    2022-11-10 13:46:05
  • 提问者 xujunping #2

    这是代码库 https://git.imooc.com/xujunping33/big-end-back.git

    2022-11-10 14:29:38
  • 提问者 xujunping #3

    问题已解决

    2022-11-11 10:51:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师