SpringCloud整合redis报NOAUTH Authentication required

redis服务器设置的有密码,在yml中配置了redis的密码,但客服端访问时在JedisConnectionFactory中没有被加载进去。
于是我是在代码中设置的reids密码如下:

package com.rrk.wallet.center.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;

@Configuration
public class RedisConfig {

    @Bean
    JedisConnectionFactory jedisConnectionFactory(){
        JedisConnectionFactory factory=new JedisConnectionFactory();
        factory.setPassword("wpx120516");
        return factory;
    }
}


在此启动时,没有报之前的错误,又变成了

{
  "timestamp": "2019-07-18 15:38:35",
  "status": 500,
  "error": "Internal Server Error",
  "message": "Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool",
  "path": "/tbUserCharm/charmTotalRank"
}

设置redis访问密码后的访问方式
在服务器上,这里以linux服务器为例,为redis配置密码。

1.第一种方式 (当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效,)

(1)首先进入redis,如果没有开启redis则需要先开启:
[root@iZ94jzcra1hZ bin]# redis-cli -p 6379
127.0.0.1:6379>
(2)查看当前redis有没有设置密码:
127.0.0.1:6379> config get requirepass

  1. “requirepass”
  2. “”
    (3)为以上显示说明没有密码,那么现在来设置密码:
    127.0.0.1:6379> config set requirepass abcdefg
    OK
    127.0.0.1:6379>
    (4)再次查看当前redis就提示需要密码:
    127.0.0.1:6379> config get requirepass
    (error) NOAUTH Authentication required.
    127.0.0.1:6379>

2.第二种方式 (永久方式)
需要永久配置密码的话就去redis.conf的配置文件中找到requirepass这个参数,如下配置:
修改redis.conf配置文件  
将requirepass foobared改为
requirepass 123
这样就指定了访问redis的密码123
保存后重启redis就可以了

连接redis
1.redis-cli连接redis
[root@iZ2ze3zda3caeyx6pn7c5zZ bin]# redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123 //指定密码
OK
127.0.0.1:6379> keys *

  1. “a”
  2. “cit”
  3. “clist”
  4. “1”
    127.0.0.1:6379>

2.Jedis连接redis
java 代码方式
//连接redis服务器,192.168.0.100:6379
jedis = new Jedis(“ip”, 6379);
//权限认证
jedis.auth(“password”);

配置文件方式




redis的其他命令。
如果需要关闭redis:
[root@iZ94jzcra1hZ bin]# pkill redis
如果需要开启redis:
[root@iZ94jzcra1hZ bin]# redis-server &
加&符号的作用是为了让此进程转换为后台进程,不占用shell的服务。

发布了26 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42643690/article/details/96432569