本地SpringBoot项目连接腾讯云服务器上的Redis,详细步骤和注意问题

连接步骤


1、首先确保服务器的安全组中6379端口号是打开的

服务器安全组

这里说明一下,为了方便就把常用端口范围都写进去了(偷懒),也可以单独定义一个6379端口,只要打开了即可

2、还要打开服务器的6379端口,可以通过下列指令来查看自己开启的端口号

  • 可以使用命令:

    lsof -i:6379 
    

    查看6379端口的打开情况,如果没信息显示说明没打开

  • 也可以通过命令:

    netstat -aptn  
    

    查看全部已开启的端口号情况,有看到 6379 redis-server即可

查看已打开的端口

3、如果没打开6379端口,则通过命令开启: 开启成功会提示 success

firewall-cmd --zone=public --add-port=6379/tcp --permanent

4、配置redis的配置文件

  • 找到redis.conf文件并打开

    如果不知道在哪,可通过命令查看文件路径:

    find / -name redis.conf
    
  • 找到里面的bind 127.0.0.1 -::1并把这句话注释掉(在这行 前面 添加 井号#)

  • 找到protected-mode yes这句话把这句话改成protected-mode no

修改redis配置

5、重启redis服务器就行了

如果是用apt-get或者yum install安装的redis,可以直接通过下面的命令停止/启动/重启redis
/etc/init.d/redis-server stop
/etc/init.d/redis-server start
/etc/init.d/redis-server restart
如果是通过源码安装的redis,则可以通过redis的客户端程序redis-cli的shutdown命令来重启redis
1.redis关闭
redis-cli -h 127.0.0.1 -p 6379 shutdown
redis-cli -h 127.0.0.1 -p 6379 -a password shutdown
如果上述方式都没有成功停止redis,则可以使用终极武器 kill -9
2.redis启动
第一种方式 默认无密码启动方式 ./redis-server 或者 ./redis-server --port 6380
如果设置密码,这种方式启动redis,调用时就会出现异常 Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set
第二种 已设置访问密码启动方式 ./redis-server …/redis.conf

6、接下来就进行springboot中的配置

  • springboot项目中导入redis相关依赖包

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    
  • 修改application.properties配置文件

    #redis 相关配置
    spring.redis.host=114.132.41.221
    spring.redis.port=6379
    
  • 测试,基本就成功了!


【问题】

springboot运行后出现不能连接redis问题:

用其他本地软件(RedisPlus)连接服务器redis,可以正常连接访问,但是程序运行后显示 connot connect xxxx(服务器地址)

【解决】

过程挺艰难的,试遍百度各种解决方案

总结下来就是上面提到的两个点:

redis.conf 文件中:

  • 将 redis.conf 文件中的 bind 127.0.0.1 -::1这行注释掉
  • protected-mode yes 这句话把这句话改成 protected-mode no

至于为什么无效,可能是两个原因之一:

  • 没有重启redis服务
  • 没有使用修改后的conf配置文件启动redis【关键】

重启redis

  • 运行,完美解决!
posted @ 2021-09-13 20:05  Halumyway  阅读(895)  评论(0)    收藏  举报