• 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,简单实用。

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

  • 相关阅读:
    字符串反转,
    留意 这两个 name,
    fileurlwithpath,
    原来是 临时的那张图片没有删除,code 516
    下载图片,
    Codevs 5564 陶陶摘苹果2
    黑科技--用处自己探索
    Codevs 1299 切水果 水一发
    COdevs 天梯 水题系列
    COdevs 2823 锁妖塔
  • 原文地址:https://www.cnblogs.com/wzs5800/p/10360714.html
Copyright © 2020-2023  润新知