spring boot连接linux服务器上的redis
本文章为给新手学习spring boot远程连通redis提供一个学习参考.
环境是intellij idea(window)+ redis(linux虚拟机-vmware)。
首先在linux安装好redis,这里网上一堆教程,这里不再赘述。
我用的是centos7,等安装完成ping通之后,接下来开始正题,以下几个步骤帮助你连接redis:
1.修改redis.conf文件(最好拷贝一份,在副本上修改)
注释掉127.0.0.1的限制
把保护模式protected-mode yes 改为 no
ps:多啰嗦一句,记得把守护线程开启,daemonize no(默认) 改为 yes
2.排除防火墙
最简单直接的方法就是把linux的防火墙关了,(在你本人学习的虚拟机上可以这样)
service iptables stop
或者你也可以试试把6379端口暴露出来。。
firewall-cmd --zone=public --add-port=6379/tcp --permanent
然后重启一下防火墙
systemctl restart firewalld
3.重启redis
我是这样带ip地址启动的,-h 后面的参数就是你虚拟机的ip地址,可通过ifconfig -a 查看
之后就是可以通过ip访问
4.接下来就是一个虚拟机的坑。。
虚拟机采用NAT模式,查看下面两个勾是否勾中,子网地址必须是你上面那个ip的同段,比如虚拟机ip地址为192.168.59.128,那么这里的子网地址必须是192.168.59.*。
如果不是,请去网络中心-找到VMware Virtual Ethernet Adapter for VMnet8右键属性,找到Ipv4属性去修改。
到这里,可以用redis可视化工具试试连接redis。
成功连接上linux的redis了。
ps:建议设置redis密码(不知道没有密码能不能连上)。
5.接下来就是spring boot redis的配置
网上教程也很多,这里不再详细赘述了。
引入依赖
<!--引入redis依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
redis配置application.yml,关键配置:host为你虚拟机的ip,端口,还有密码这三个
spring:
redis:
database: 0
host: 192.168.59.128
port: 6379
password: 123456
# jedis:
# pool:
# max-active: 8
# max-wait: -1
# max-idle: 8
# min-idle: 0
timeout: 500
看看redis里存在的key,我们用k2来测试联通
写个最简单的测试类。
import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class RedisdemoApplicationTests { @Autowired private StringRedisTemplate stringRedisTemplate; @Test public void contextLoads() { String k2 = stringRedisTemplate.opsForValue().get("k2"); System.out.print("k2:" + k2); } }
结果取到了k2的值,连接成功!这里用到的是stringRedisTemplate,里面封装了很多api,简单实用。
纯随笔,如有不对,感谢指出!