spring boot连接linux服务器上的redis

Posted Ashin5800

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,简单实用。

纯随笔,如有不对,感谢指出!

以上是关于spring boot连接linux服务器上的redis的主要内容,如果未能解决你的问题,请参考以下文章

在 spring-boot 集成测试中使用 H2 数据库的 JDBC 连接错误

Docker,Mongodb,Windows 上的 Spring Boot 出现连接被拒绝错误

无法将 AWS-Postgres 服务器与带有 heroku 托管的 Spring Boot 应用程序连接起来

在 Spring Boot 测试中的纯二进制 websocket 连接期间保持 TestSecurityContextHolder

Spring Boot 整合 Druid

spring-boot中tomcat的默认连接池?