一、概述
在Java程序中使用Jedis连接使用Redis时或许会报错,有几个点需要注意的
二、实现
1、redis服务器是否开启
在终端中使用redis-cli
进入客户端后输入命令测试redis服务器是否启动
输入ping
得到PONG
若无则使用redis-server
启动Redis
2、Linux防火墙是否关闭
如果是Linux系统,直接连Redis是没有这个问题的(大概
如果是Windows系统,连接Linux虚拟机里的Redis大概率会出现这个问题(好像
解决方法:在Linux终端中输入service iptables stop
后重启redis
3、未修改redis-conf
中的blind 127.0.0.1
如果未注释这条的话,外部是无法访问Redis的
解决方法:终端下vim
redis-conf
然后找到这行,前面加上#
4、未设置Redis密码
如果还出错的话,有可能是Redis未设置密码
解决方法:和3
解决方法类似,进入redis-conf
后键入:/requirepass foobared
则可找到目标行,然后把foobared
修改成需要的密码就可以了
*此处修改密码为admin
三、解决过后
package test01;
import redis.clients.jedis.Jedis;
public class JedisDemo01 {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");
jedis.auth("admin");
jedis.set("foo","bar");
String value = jedis.get("foo");
System.out.println(value);
}
}
可获取到bar
,解决问题
四、产生问题
Redis设置密码过后,就不能简单的使用redis-cli
在终端下连接Redis了
需要加上-a
选项和设置的密码进行登录
例如
redis-cli -a admin