环境:
Linux系统:VMware 14 中 CentOS 7 64 位
redis版本:redis-stable.tar.gz(当前版本是:redis-cli 4.0.9)
一、在java中使用Jedis连接redis数据库,实现步骤:
1、需要加入Jedis的jar包:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2、java代码:
@Test
public void redisTest2(){
//连接本地的 Redis 服务
Jedis jedis = new Jedis("192.168.138.131",6379);
//查看服务是否运行
System.out.println("服务正在运行: "+jedis.ping());
jedis.set("a", "小王");
System.out.println(jedis.get("a"));
jedis.close();
}
在Linux系统上面执行ifconfig命令获取Linux系统的ip,如下:
[root@localhost /]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.138.131 netmask 255.255.255.0 broadcast 192.168.138.255
inet6 fe80::2114:b02c:ad47:d0d3 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b7:e5:7d txqueuelen 1000 (Ethernet)
RX packets 53168 bytes 73659986 (70.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 25995 bytes 1948044 (1.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 124 bytes 27019 (26.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 124 bytes 27019 (26.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost /]#
其中ip为ens33中的inet 192.168.138.131,new Jedis时使用该ip,后面的是端口号,默认的是6379。
3、运行时出现错误,是因为Linux防火墙的问题。
二、配置Linux防火墙
1、关闭centos7默认防火墙,启用iptables防火墙。(在根目录下执行)
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示not running,开启后显示running)
2. 安装iptables防火墙
yum -y install iptables-services #安装iptables防火墙
3. 配置防火墙需要过滤的端口,即Reids使用的端口。
编译:/etc/sysconfig/iptables 配置文件
配置文件内容如下:# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
将:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT
添加到
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
的上面或下面,切记不要添加到最后一行,否则防火墙重启后不生效。
6379为Redis的端口号。
4、保存,执行以下命令(在根目录执行):
systemctl restart iptables.service #最后重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
5、重新启动虚拟机。
6、修改redis安装目录下面的redis.conf文件,即usr/local/redis/bin/
1)注释掉 bind 127.0.0.1
#bind 127.0.0.1
2)关闭 protected-mode,把yes改成no
protected-mode no
3)重新启动redis