2 u010477161 u010477161 于 2016.02.21 16:26 提问

redis配置密码,客户端报错

没有使用密码认证的情况下客户端连redis服务器都是正常的。使用密码配置会就提示错误了

在redis 服务端修改/etc/redis.conf

requirepass myRedis

重启服务
sudo service redis restart

客户端是使用JedisPool ,其中参数password 就是myRedis
使用的是new JedisPool(config, host, Integer.parseInt(port), Integer.parseInt(timeout), password);

当我从池中获取一个Jedis的时候就会报错;
Jedis jedis = jedisPool.getResource();

具体报错的地方在以下。

redis.clients.jedis.Connection 类的 socket.connect(new InetSocketAddress(host, port), timeout);就会报
Could not get a resource from the pool

public void connect() {
    if (!isConnected()) {
        try {
            socket = new Socket();
            //->@wjw_add
            socket.setReuseAddress(true);
            socket.setKeepAlive(true);  //Will monitor the TCP connection is valid
            socket.setTcpNoDelay(true);  //Socket buffer Whetherclosed, to ensure timely delivery of data
            socket.setSoLinger(true,0);  //Control calls close () method, the underlying socket is closed immediately
            //<-@wjw_add

            socket.connect(new InetSocketAddress(host, port), timeout);
            socket.setSoTimeout(timeout);
            outputStream = new RedisOutputStream(socket.getOutputStream());
            inputStream = new RedisInputStream(socket.getInputStream());
        } catch (IOException ex) {
            throw new JedisConnectionException(ex);
        }
    }
}


       redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:42)

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect
at redis.clients.jedis.Connection.connect(Connection.java:137)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:65)
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1706)
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:65)
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:819)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:429)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:360)
at redis.clients.util.Pool.getResource(Pool.java:40)
... 2 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at redis.clients.jedis.Connection.connect(Connection.java:132)
... 9 more

2个回答

zxl78585
zxl78585   2016.02.21 17:42
已采纳

你这中错误,应该是你启动redis的时候,没有使用配置文件,或者是配置文件没有生效。redis带配置文件启动的命令是:
redis-server redis.conf
如果用这样还是无法启动,那建议您检查一下您的配置文件是否正确

u010477161
u010477161 谢谢,就是这个问题,我重启的时候没有加上redis.conf配置文件,谢谢!
2 年多之前 回复
u010477161
u010477161 谢谢,就是这个问题,我重启的时候没有加上redis.conf配置文件,谢谢!
2 年多之前 回复
u010477161
u010477161   2016.02.22 10:13

谢谢,就是这个问题,我重启的时候没有加上redis.conf配置文件,谢谢!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Redis使用认证密码登录
Redis默认配置是不需要密码认证的,也就是说只要连接的Redis服务器的host和port正确,就可以连接使用。这在安全性上会有一定的问题,所以需要启用Redis的认证密码,增加Redis服务器的安全性。 1. 修改配置文件 Redis的配置文件默认在/etc/redis.conf,找到如下行: #requirepass foobared 去掉前面的注释,并修改为所需要的密码
redis配置密码
redis配置密码 1.通过配置文件进行配置 yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 [plain] view plain copy #requirepass foobared   去掉行前的注释,并修改密码为所需的密码,保存文件 [plain] view plain c
redis配置密码,以及如何启动。(windows环境)
1.下载redis免安装包:http://pan.baidu.com/s/1o8uqWie 2.解压redis安装包,打开redis.windows.conf,修改# requirepass foobared为:requirepass 123456 3.在当前目录新建一个bat文件,输入内容:redis-server.exe redis.windows.conf4.运行startRedis即可
Redis | 学习篇 Redis 配置密码不生效解决办法!
1) 在/etc/redis/6379.conf 找到这一行:# requirepass foobared2) 将注释符号去掉,将后面修改成自己的密码,如:requirepass 1234563) 然后保存,重启服务    cd /usr/local/bin   ./redis-server /etc/redis/6379.conf   测试连接:./redis-cli      输入:keys ...
Redis win7版 设置访问密码
win7环境下设置Redis访问密码
Redis设置认证的密码
我的linux操作系统是Centos6.4的环境。redis的版本是3.2版本。 因为我是编译安装的redis 所以我redis的安装在了 /usr/local/redis 修改配置文件 /usr/local/redis/etc/redis.conf 将一下的注释打开并且后面输入自己的密码 然后到 /usr/local/redis/bin/底下使用如下命令重启 我们需
Docker安装官方Redis镜像并启用密码认证 实践笔记
参考:docker官方redis文档 1.有特殊版本需求的可以查看redis镜像tag版本 3.2.11, 3.2, 3 (3.2/Dockerfile) 3.2.11-32bit, 3.2-32bit, 3-32bit (3.2/32bit/Dockerfile) 3.2.11-alpine, 3.2-alpine, 3-alpine (3.2/alpine/Dockerfile) ...
Redis+Sentinel集群安装与配置
1.环境介绍 集群机器                                               redis服务                                      哨兵(sentinel)                                          节点描述 虚拟机:192.168.20.105          安装redis服
redis 设置认证密码
为redis设置密码:设置客户端连接后进行任何其他指定前需要实用的密码。 警告:因为redis速度非常快,所以在一台较好的服务器下,一个外部用户可以在一秒钟进行150k次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。 修改密码的方法: 只需要在redis的配置文件redis.conf中开启requirepass就可以了,比如我设置我的访问密码是mypasswor
windows下scrapy-redis如何为redis配置密码
windows下scrapy-redis如何为redis配置密码1. 环境 系统:win7 scrapy-redis redis 3.0.5 python 3.6.1 2. 为redis-server配置密码并启动 redis在windows下的安装与配置,请参考这篇文章:http://blog.csdn.net/zwq912318834/article/details/78770209 2.1.