目录
提前预知
目前Jedis客户端连接Redis,公司里面使用的已经不多了,因为SpringBoot框架默认集成连接Redis的客户端是Lettuce,所以此处的笔记仅做了测试连通部分。
01,Jedis_测试联通
1.1,测试联通
第一步:在IDEA中创建一个Maven工程
第二步:导入坐标
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.1.0</version>
</dependency>
第三步:启动redis服务器
第四步:创建测试类
- TestPing.java
public class TestPing {
public static void main(String[] args)
{
Jedis jedis = new Jedis("127.0.0.1",6379);
//输出PONG,redis连通成功
System.out.println(jedis.ping());
}
}
报错的解决办法(Linux环境):
第一步:在DOS下执行这个命令看看端口能否连接上:telnet ip port
其中ip为主机的ip,端口为Redis的服务端口:telnet 127.0.0.1 6379
如果连接不上,说明可能被拦截了
第二步:在主机中使用这个命令查看开放的端口号: firewall-cmd --list-ports
第三步:如果端口号没开,使用这个命令开放端口号:firewall-cmd --zone=public --add-port=6379/tcp --permanent
第四步:重启防火墙:systemctl restart firewalld.service
第五步:去配置文件里把bind注释掉
第六步:再次连接应该可以成功
注意:bind 后加的是允许访问的ip
bind 127.0.0.1代表只有本机可以访问,可以将允许访问的ip加入,
也可以直接注释掉这一行,这样所有机器都可以访问
1.2, windows下测试端口开放的方法
可以使用此方法查看虚拟机中的端口是否开放
- 使用命令:telnet
telnet ip port
cmd下使用此命令如果报错:'telnet' 不是内部或外部命令,也不是可
运行的程序或批处理文件
使用如下方法开启即可:
控制面板 -> 程序 -> 启用或关闭 Windows功能 -> Telnet客户端
1.3, linux下测试端口开放的方法
使用此方法可以查看虚拟机的开放端口
- 命令:netstat
-a :所有
-t : 指明显示TCP端口
-u : 指明显示UDP端口
-l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
-p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
-n : 不进行DNS轮询,显示IP(可以加速操作)
- 具体使用
netstat -ntulp |grep 80 //查看所有80端口使用情况
netstat -an | grep 3306 //查看所有3306端口使用情况
netstat -ntulp |grep redis //查看所有redis端口使用情况
1.4,Linux有关(了解)
centos7及以上版本使用:
- 查看所有开放的端口:
firewall-cmd --list-ports
- 查看某一端口是否开放,如 6379端口:
firewall-cmd --query-port=6379/tcp
开放返回 yes,否则为 no。
- 永久开放 一个端口端口加上:
firewall-cmd --zone=public --add-port=6379/tcp --permanent
开放成功返回 success
--zone :表示作用域
--add-port=8080/tcp :表示添加端口,格式为:端口/通信协议
--permanent :示永久生效,如果没有此参数则系统重启后失效
注意,开放端口后应重启防火墙,使端口开放生效
- 重启防火墙:
firewall-cmd --reload
- 移除开放的 6379端口:
firewall-cmd --permanent --zone=public --remove-port=8080/tcp
注意:移除开放端口后也应重启防火墙
- 查看防火墙状态:
systemctl status firewalld.service
- 启动 | 关闭 | 重启 防火墙 :
systemctl start firewalld.service
systemctl stop firewalld.service
systemctl restart firewalld.service
02,Jedis_常用API
public class TestAPI {
public static void main(String[] args) {
//连接Redis服务器
Jedis jedis = new Jedis("127.0.0.1",6379);
//使用set方法向服务器中存储值
jedis.set("k1","v1");
jedis.set("k2","v2");
jedis.set("k3","v3");
//获取存入的键为k3的值
System.out.println(jedis.get("k3"));
//获取所有的key
Set<String> sets = jedis.keys("*");
//打印集合的长度
System.out.println(sets.size());
}
}