目录
1.redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectExction :
2.redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.:
【注】本篇博客使用IDEA + maven来进行代码的书写和管理。
Java操作Redis时的jar包进行了分类:jedis包和redisson包。
jedis包:用于数据库的增删改查;
redisson包:用于加锁和解锁。
java操作Redis的流程:
1.导入jedis依赖包:
在https://mvnrepository.com/上搜索"jedis"来导入相关版本的jedis依赖:
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2.导入junit依赖包:
junit属于单元测试插件,可以使得程序员省去main()直接对某一个方法进行测试,只需要在需要测试的方法的前面加上@Test。但是对于该方法有强制性要求:
(1).必须使用public修饰;
(2).方法中不能有返回值;
(3).方法中不得有参数。
3.写测试方法:
public class JedisDemo1 {
@Test
public void testJedis(){
//连接Redis服务器
Jedis jedis = new Jedis("172.27.200.100",6379);
String result = jedis.set("host","172");//向Redis中加入数据 若成功返回OK
System.out.println(result);
}
}
关于testJedis( )运行时控制台报错分析:
1.redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectExction :
与服务器上的Redis连接失败。原因有:
(1).服务器防火墙上的6379端口没有打开
#检查6379端口是否开放
firewall-cmd --query-port=6379/tcp
#开放6379端口
firewall-cmd --add-port=6379/tcp --permanent
#重启防火墙
firewall-cmd --reload
再次检查
firewall-cmd --query-port=6379/tcp
(2).Redis安装目录下总配置文件redis.conf没有更改
Redis默认只支持本地连接,所以要通过修改配置文件来支持其他机器连接Redis.
1)使用vim或vi打开redis.conf;
2)将大约第70行的"bind 127.0.0.1" 改为 “bind 0.0.0.0”以用来支持所有主机可以连接Redis;
3)查看当前运行的Redis的进程号:
ps -A | grep redis
4)根据进程号强行杀死当前Redis进程:
kill -9 进程号
5)使用修改的redis.conf启动Redis:
#根据redis.conf的路径 可做修改
redis-server /opt/redis4.0.2/redis.conf
(3)Redis服务器没有启动。
2.redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.:
这种错误属于连接上了服务器上的Redis,但是没有认证。也就是说没有输入密码或者输入的密码不正确导致。应该在java测试代码中加上:
jedis.auth("123456");//方法参数是登陆密码