报错如图:
在这里插入图片描述

解决方案:

一、从redis服务端入手检查

1、将redis.conf中的bind:127.0.0.1注释掉;
2、将redis.conf中的protected-mode yes改为protected-mode no。

二、检查代码和配置文件

1、检查配置文件
# Redis服务器地址
redis.host=127.0.0.1
# Redis服务器连接端口
redis.port=6379
# Redis服务器连接密码(默认为空)
redis.password=
# 连接超时时间(毫秒)
redis.timeout=10000
# 连接池最大连接数(使用负值表示没有限制)
redis.pool.max-active=200
# 连接池最大阻塞等待时间(使用负值表示没有限制)
redis.pool.max-wait=-1
# 连接池中的最大空闲连接
redis.pool.max-idle=8
# 连接池中的最小空闲连接
redis.pool.min-idle=0
2、检查代码

可以尝试使用SpringBoot集成的Redis的Starter组件,配置类随便百度搜一下就有,下面的yml里面的配置

spring:
  #redis 配置
  redis:
    database: 1
    host: 127.0.0.1
    lettuce:
      pool:
        max-active: 8   #最大连接数据库连接数,设 0 为没有限制
        max-idle: 8     #最大等待连接中的数量,设 0 为没有限制
        max-wait: -1ms  #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
        min-idle: 0     #最小等待连接中的数量,设 0 为没有限制
      shutdown-timeout: 100ms
    password: ''
    port: 6379

如果你还是想用Jedis自己来操作的话,那可能就是你的JedisPool配置有问题了,因为我就是踩的这个坑,
在这里插入图片描述
我的Redis是没有配置密码的,我相信很多人自己调试的也是没有密码的,这里不能写空字符串,要写null,要么你就用其他不用配置密码的构造方法JedisPool(final URI uri)、JedisPool(final URI uri, final int timeout)等等找合适自己的。
下面是我的JedisPool对象

	@Bean
    public JedisPool redisPoolFactory() {
        try {
            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
            jedisPoolConfig.setMaxIdle(maxIdle);
            jedisPoolConfig.setMaxWaitMillis(maxWait);
            jedisPoolConfig.setMaxTotal(maxActive);
            jedisPoolConfig.setMinIdle(minIdle);
            // 密码为空设置为null
            if (StringUtil.isBlank(password)) {
                password = null;
            }
            JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);
            logger.info("初始化Redis连接池JedisPool成功!地址: {}:{}", host, port);
            return jedisPool;
        } catch (Exception e) {
            logger.error("初始化Redis连接池JedisPool异常:{}", e.getMessage());
        }
        return null;
    }

解决!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐