redis连接失败报错 org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Red

springboot中连接linux虚拟机上的redis时,报错显示无法连接redis

org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis;

常规解决方法

先看看自己有没有启动redis服务器

通过修改redis安装目录下的redis.conf等相关配置

  1. 将protected-mode 修改为 no
  2. 注释掉 bind 127.0.0.1

这样redis就允许外部访问了

但是如果你已经成功设置这些配置,但你连接redis时依然报错的话,那么基本可以确实是你的虚拟机防火墙的问题了。

开启虚拟机的特定端口号

首先为了确认,外部网络是否可以正常连接linux虚拟机的redis,可以在本地cmd中输入以下代码

telnet 192.168.0.1(此处应为你的虚拟机的网址) 6379(redis端口号)

在这里插入图片描述
若出现以上,则你需要打开你的虚拟机的防火墙
在虚拟机中依次输入以下命令

1.查看防火墙的状态

firewall-cmd --state

2.将特定的端口设置为开放

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

3.查看防火墙的开放的端口

firewall-cmd --permanent --list-ports

若出现了6379则证明你已成功
4.重启防火墙

firewall-cmd --reload

完成后,记得重启redis服务器
这时候再到本机cmd中输入

telnet 192.168.0.1 6379

在这里插入图片描述框中什么都没有,视为成功。
最后,记得重启springboot,就可以看到能够成功连接redis了。

本文参考:
https://justinneil.blog.csdn.net/article/details/99302431?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-99302431-blog-121553196.pc_relevant_layerdownloadsortv1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-99302431-blog-121553196.pc_relevant_layerdownloadsortv1&utm_relevant_index=2

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot中使用Redis作为消息队列的监听器,可以通过Spring Data Redis提供的功能来实现。以下是一个基本的示例: 首先,确保你的Spring Boot项目中已经添加了Spring Data Redis的依赖。可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 接下来,创建一个消息监听器类,用于接收和处理Redis消息。可以使用`@Component`注解将该类声明为Spring组件,并使用`@RedisListener`注解指定要监听的队列名称。 ```java import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.connection.MessageListener; import org.springframework.stereotype.Component; @Component public class RedisMessageListener implements MessageListener { @Override public void onMessage(Message message, byte[] pattern) { String channel = new String(message.getChannel()); String body = new String(message.getBody()); // 处理接收到的消息 System.out.println("Received message: " + body + " from channel: " + channel); } } ``` 然后,在需要发送消息的地方,可以使用`RedisTemplate`来发送消息到指定的队列。可以使用`convertAndSend`方法来发送消息。 ```java import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; @Service public class MessageService { private final RedisTemplate<String, String> redisTemplate; public MessageService(RedisTemplate<String, String> redisTemplate) { this.redisTemplate = redisTemplate; } public void sendMessage(String message) { redisTemplate.convertAndSend("queue-name", message); } } ``` 最后,在启动类上添加`@EnableRedisRepositories`注解,以启用Spring Data Redis的功能。 ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.redis.repository.configuration.EnableRedisRepositories; @SpringBootApplication @EnableRedisRepositories public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 现在,当消息发送到指定的Redis队列时,监听器类中的`onMessage`方法将被自动调用,可以在该方法中进行消息的处理逻辑。 请注意,以上示例只是一个基本的演示,实际的应用中可能需要更多的配置和处理逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值