SpringBoot整合Redis,连接超时及其解决方案
在Spring Boot中整合redis的步骤:
1.引入redis的starters
org.springframework.boot spring-boot-starter-data-redis
2. 写配置类,注入名为redisTemplate的bean
@Configuration
public class RedisConfig {/*** 向容器注入名称为方法名的(redisTemplate)bean* @return*/@Beanpublic RedisTemplate<String,String> redisTemplate(RedisConnectionFactory redisConnectionFactory){RedisTemplate<String,String> redisTemplate= new RedisTemplate<>();redisTemplate.setConnectionFactory(redisConnectionFactory);return redisTemplate;}
}
3. 在application.properties配置文件中:配置redis的连接信息
redis配置信息
# redis服务主机地址(一般是Linux内网地址ip)
#如果redis和开发工具安装在同一个系统下,可以直接使用localhost
#如果redis开启在linux虚拟机上,而开发工具安装在windwo,则要查询Linux虚拟机ip(ifconfig)
spring.redis.host=192.168.44.128
#spring.redis.host=localhost
redis服务端口号
spring.redis.port=6379
spring.redis.database=0
#登录redis服务的密码
spring.redis.password=
4. 使用redisTemplate操作api.
@RestController
public class RedisController {
@Resource
private RedisTemplate redisTemplate;@RequestMapping("/redis/setAndGet")
public String setAndGet( String name,String value){//给redis存放string类型的key和valueredisTemplate.opsForValue().set(name,value);return (String) redisTemplate.opsForValue().get(name);}
5.启动主配置类访问:结果一直报错:redis connect to to 192.168.22.148(本地linux虚拟机地址)失败,如下:
首先,介绍我的项目环境:
当前项目位于本地window环境中,使用idea作为开发工具;而Redis对应的服务位于本地虚拟机上,所以在配置文件中关于Redis的host地址要写虚拟机ip。但是访问超时。于是就着手解决这个问题,根据一些博客的经验介绍:解决方案如下:
1.修改redis.conf配置的两个位置:
接着找到redis的配置文件redis.conf,直接进入配置文件:
vim redis.conf
找到 protected-mode no,修改成yes
protected-mode no → protected-mode yes
2.在linux系统上,开放redis的6379端口:
1>进入配置文件:vim /etc/sysconfig/iptables
2>添加想要放开的端口:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
3>退出保存iptables,并重启iptables
service iptables restart
此时,再启动idea 中的springboot就可以访问到redis.问题的解决,总是充满愉悦啊!
补充一点,在一篇博客中针对我们这种情况(我们这种情况是指:项目开发在window系统,而Redis又在远程或者虚拟机中。如果你完全使用的mac环境开发,其实不会有这样的问题的)提供了一个很好的验证方案:
详情地址链接如下:https://blog.csdn.net/DragonFreedom/article/details/79512686
简单的说就是:
要测试有没有通,不用你一直跑代码,很麻烦,直接使用win的telnet,进入cmd,命令如下:
telnet host port
这是我在解决问题过程中,一直测试端口是否可用。这个命令很有用。
当输入:telnet linux ip redis 的6378端口号,如:telnet 192.168.xx.111 6379 ,有反应且进入一个什么都没有的窗口,表示这个端口后可用访问;否则如果这个端口还是没有被放开或者拒绝访问,提示信息如上图。
解决方案参考了一些问题,感谢各位大佬:
https://blog.csdn.net/symsym_keepGoing/article/details/100609100?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1
https://blog.csdn.net/DragonFreedom/article/details/79512686
https://blog.csdn.net/qq_41988504/article/details/85322022?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1
https://blog.csdn.net/azhong148/article/details/79677049
https://ask.csdn.net/questions/386710?locationNum=11&fps=1
如果你觉得不好,请指正,希望每个人都可以遇见梦中的明天、
SpringBoot整合Redis,连接超时及其解决方案相关推荐
- springboot整合redis集群master宕机后连接超时
前提: # 本文是在确保redis集群配置正确的情况下,连接超时的解决方案. 项目登录认证使用的是sa-token(这个不重要,主要说的是springboot和redis集群),最近应甲 ...
- spring boot连接redis配置127.0.0.1_Java技术分享——Springboot整合redis
springboot提供了spring-data-redis的框架来整合redis的操作.下面主要介绍,springboot整合redis的配置,以及spring-data-redis是如何提供便捷的 ...
- springboot整合redis消息队列
前言 消息队列作为一种常用的异步通信解决方案,而redis是一款高性能的nosql产品,今天就给大家介绍一下,如何使用redis实现消息队列,并整合到springboot. 两个消息模型 1. 队列模 ...
- SpringBoot整合Redis缓存
SpringBoot整合Redis缓存 一.缓存概念知识 1.是什么缓存 2.缓存的优缺点 3.为什么使用缓存 二.Redis概念知识 1.Redis简介 2.为什么用Redis作为缓存 3.Redi ...
- Redis学习(含 Springboot 整合 Redis)
Redis NoSQL (not only sql) 在现代的计算系统上每天网络上都会产生庞大的数据量. 这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理. 1970年 E.F.Codd ...
- 8分钟带你学会SpringBoot整合Redis来实现缓存技术
1.概述 随着互联网技术的发展,对技术要求也越来越高,所以在当期情况下项目的开发中对数据访问的效率也有了很高的要求,所以在项目开发中缓存技术使用的也越来越多,因为它可以极大的提高系统的访问速度,关于缓 ...
- SpringBoot整合Redis要注意的那些
前言 昨天自己在重新学习SpringBoot整合Redis时,遇到了一个问题java.lang.NoClassDefFoundError: org/apache/commons/pool2/impl/ ...
- SpringBoot(六):SpringBoot整合Redis
From: https://blog.csdn.net/plei_yue/article/details/79362372 前言 在本篇文章中将SpringBoot整合Redis,使用的是RedisT ...
- springboot整合redis实现分布式锁思想
思路 所有响应获取锁的线程都先尝试往redis中创建一个缓存数据,所有线程的key必须相同.使用的是redis的setnx命令.就只有一个线程能够创建成功,创建成功的线程就成功获取锁. 没有获取锁的线 ...
最新文章
- 【js】获得项目路径
- ASP.Net请求处理机制初步探索之旅 - Part 3 管道
- go tcp连接_TCP漫谈之keepalive和time_wait
- python加密敏感信息_仅需10行代码,使用python加密用户敏感数据
- 【转】大话程序猿眼里的高并发
- DrawWindowFrame
- 使用ASP.NET MVC对用户组的自定义授权
- SAP License:再论分摊与分配(含实例)
- 思科警告:“关键更新”钓鱼攻击窃取用户 Webex 凭证
- 智能提示_文明放大镜·7 | 清新智能语音提示桩让你过马路除了看灯还可以听,赞...
- php编写数据库配置文件,通用php与mysql数据库配置文件
- python爬虫执行js代码_python爬虫执行js代码-execjs
- datacolumn 表达式 除数为0
- 【大数据公司研究】第三方大数据公司是如何赚钱的,以个推公司为例
- 如何成为一名区块链工程师? | 附学习资源
- A Cleaned, Hypernymed, Image Alt-text Dataset For Automatic Image CaptioningTransformer
- 人工智能技术涉及到的学科有哪些,22年最新
- 第三方支付为什么会兴起
- 2022-04-14每日刷题打卡
- inprivate浏览是什么意思_IE8的InPrivate浏览功能
热门文章
- Int和Integer的区别
- 【Unity3D】二、制作滚球游戏学习Unity3D(下)
- 用PuTTY SSH 密钥生成工具puttygen.exe生成密钥.
- 如何更改Odoo13 登录页面的右下角的广告连接
- 【两万字图文详解】 运动会管理系统-前后端分离-项目开发:【后端】SpringBoot, SpringMVC, MyBatis【前端】Vue.js,ElementUI
- 践行新基建,共建城市智能体,为数字经济发展提供新动能
- iOS开源框架及项目大全(一定有你想要的,后期在不断进行分类方便大家查阅)
- 《跨境电商 —— 阿里巴巴速卖通实操全攻略》一一2.4 淘代销
- IT码农进入日企之路——不挂日语(八)
- 正交相机OrthographicCamera在GDX中的使用