精华内容
下载资源
问答
  • 这是连接被拒绝的异常,一开始我觉得我啥都配置好了的,而且连接远程服务器是没问题的,我想连接远程的都没问题怎么就连接本地的就不行,不应该啊,各种方法都试过了,而且我用可视化工具都能连接本地redis,可是就...

    欢迎访问本人的个人博客:https://www.wayblogs.com

    这是连接被拒绝的异常,一开始我觉得我啥都配置好了的,而且连接远程服务器是没问题的,我想连接远程的都没问题怎么就连接本地的就不行,不应该啊,各种方法都试过了,而且我用可视化工具都能连接本地redis,可是就项目上不行,后面我往下翻了一下错误日志,看到了这么一段:ERR Client sent AUTH, but no password is set(ERR Client sent AUTH,但未设置密码)

    ☹,怎么会没设置密码,我早就设置好了啊,明明可视化工具也是用密码连接的,我就清空了可视化工具连接本地redis的密码,发现还是能连接上,而且无论输什么密码都能连接的上,我欲哭无泪啊,原来这个工具只要redis没密码不管输什么密码都能连接的上,所以造成了我的错觉,可是我之前明明设置了,然后我就在想会不会是因为我之前安装redis的时候启动服务指定的不是redis.windows.conf,而是redis.windows-service.conf这个文件,然后我打开了redis的服务一看,我靠,果然,

     

     但是我后面又修改了redis.windows.conf并且指定了这个文件重启了redis,为什么还是指定的redis.windows-service.conf在运行

    我唯一能想到的就是redis-server 重启不了吧

    展开全文
  • 现在简单的做本地redis的搭建。 (1) 下载window版本的redis安装 (见我的资源下载)  配置:port根据要求,可改变,启动redis-service.exe即启动,启动redis-cli.exe可进行界面语句操作,查询 (2) sprigboot...

    基于springboot开发中,对于缓存数据获取,重复或者延迟数据等,redis的使用就显得方便很多。现在简单的做本地redis的搭建。

    (1) 下载window版本的redis安装 (见我的资源下载)

     配置:port根据要求,可改变,启动redis-service.exe即启动,启动redis-cli.exe可进行界面语句操作,查询

    (2) sprigboot配置

    application.properties配置:

    # Redis数据库索引(默认为0)
    spring.redis.database=0
    ## Redis服务器地址
    spring.redis.host=127.0.0.1
    ## Redis服务器连接端口
    spring.redis.port=6379
    ## Redis服务器连接密码(默认为空)
    spring.redis.password=
    ## 连接池最大连接数(使用负值表示没有限制)
    spring.redis.jedis.pool.max-active=8
    ## 连接池最大阻塞等待时间(使用负值表示没有限制)
    spring.redis.jedis.pool.max-wait=-1ms
    ## 连接池中的最大空闲连接
    spring.redis.jedis.pool.max-idle=8
    ## 连接池中的最小空闲连接
    spring.redis.jedis.pool.min-idle=0
    ## 连接超时时间(毫秒)
    spring.redis.jedis.timeout=0

     (3) 增加redis工具类RedisCacheUtil和泛型接口RedisCacheServer

       RedisCacheServer类:

    package com.study.provider.cache;
    
    import java.util.Collection;
    import java.util.Map;
    import java.util.concurrent.TimeUnit;
    import java.util.function.Supplier;
    
    public interface RedisCacheServer {
        <T> void put(String key, T obj);
        <T> void put(String key, T obj, int timeout);
        <T> void put(String key, T obj, int timeout, TimeUnit unit);
    
        <T> T get(String key, Class<T> cls);
    
        <E,T extends Collection<E>> T get(String key, Class<E> cls, Class<T> collectionCls);
        <T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier);
        <T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier, int timeout);
    
        <E,T extends Collection<E>> T putIfAbsent(String key, Class<E> cls, Class<T> collectionCls, Supplier<T> supplier);
    
        boolean exists(String key);
        void del(String key);
        boolean expire(String key, long timeout, TimeUnit unit);
        boolean expire(String key, long timeout);
    
        void put(String key, String value);
        void put(String key, String value, int timeout);
        void put(String key, String value, int timeout, TimeUnit unit);
        String get(String key);
    
        void putHash(String key, Map<Object, Object> m);
        Map<Object, Object> getHash(String key);
    }
    

    工具类RedisCacheUtil:

    package com.study.provider.cache;
    import com.alibaba.fastjson.JSON;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.stereotype.Service;
    import java.util.Collection;
    import java.util.Map;
    import java.util.concurrent.TimeUnit;
    import java.util.function.Supplier;
    
    @Service
    public class RedisCacheUtil implements RedisCacheServer{
        @Autowired
        private StringRedisTemplate redisTemplate;
    
        public <T> void put(String key, T obj) {
            redisTemplate.opsForValue().set(key, JSON.toJSONString(obj));
        }
    
        public <T> void put(String key, T obj, int timeout) {
            put(key,obj,timeout, TimeUnit.MINUTES);
        }
    
        public <T> void put(String key, T obj, int timeout, TimeUnit unit) {
            redisTemplate.opsForValue().set(key, JSON.toJSONString(obj),timeout,unit);
        }
    
        public <T> T get(String key, Class<T> cls) {
            return JSON.parseObject(JSON.toJSONString(redisTemplate.opsForValue().get(key)), cls);
        }
    
        @Override
        public <E, T extends Collection<E>> T get(String key, Class<E> cls, Class<T> collectionCls) {
            return null;
        }
    
        /***
        public <E, T extends Collection<E>> T get(String key, Class<E> cls, Class<T> collectionCls) {
            return JSON.parseArray(JSON.toJSONString(redisTemplate.opsForValue().get(key)), cls, collectionCls);
        }**/
    
        public <T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier) {
            T t=get(key,cls);
            if(null==t){
                t=supplier.get();
                if(null!=t)
                    put(key,t);
            }
            return t;
        }
    
        public <T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier, int timeout) {
            T t=get(key,cls);
            if(null==t){
                t=supplier.get();
                if(null!=t)
                    put(key,t,timeout);
            }
            return t;
        }
    
        public <E, T extends Collection<E>> T putIfAbsent(String key, Class<E> cls, Class<T> collectionCls,
                                                          Supplier<T> supplier) {
            T t=get(key,cls,collectionCls);
            if(null==t || t.isEmpty()){
                t=supplier.get();
                if(null!=t && t.size()>0)
                    put(key,t);
            }
            return t;
        }
    
        public boolean exists(String key) {
            return redisTemplate.hasKey(key);
        }
    
        public void del(String key) {
            redisTemplate.delete(key);
        }
    
        public boolean expire(String key, long timeout, TimeUnit unit) {
            return redisTemplate.expire(key, timeout, unit);
        }
    
        public boolean expire(String key, long timeout) {
            return redisTemplate.expire(key, timeout, TimeUnit.MINUTES);
        }
    
        public void put(String key, String value) {
            redisTemplate.opsForValue().set(key, value);
        }
    
        public void put(String key, String value, int timeout) {
            put(key,value,timeout,TimeUnit.MINUTES);
        }
    
        public void put(String key, String value, int timeout, TimeUnit unit) {
            redisTemplate.opsForValue().set(key, value, timeout, unit);
        }
    
        public String get(String key) {
            return (String) redisTemplate.opsForValue().get(key);
        }
    
        public void putHash(String key, Map<Object,Object> m) {
            redisTemplate.opsForHash().putAll(key, m);
        }
    
        public Map<Object, Object> getHash(String key) {
            try{
                return redisTemplate.opsForHash().entries(key);
            }catch(Exception e){
                return null;
            }
        }
    }
    

    (4) 使用案例:

    package com.study.provider.controller;
    
    import com.study.provider.cache.RedisCacheUtil;
    import com.study.provider.mapping.IDesignMapping;
    import com.study.provider.util.ResultUtils;
    import com.study.provider.vo.DesignVo;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import java.util.Map;
    
    @Controller
    public class ProviderController {
         @Autowired
         private IDesignMapping designMapping;
        @Autowired
        private RedisCacheUtil redisCacheUtil;
    
        @RequestMapping("/provider")
        @ResponseBody
        public Map<String, Object> provider(){
            System.out.println("welcome to provider");
            DesignVo arg0 = new DesignVo();
            arg0.setDesignDesc("xiaoxin");
            arg0.setDesignMethod("xiaoxin is a good boy");
            arg0.setDesignType("xiaoxin is a love boy");
            redisCacheUtil.put("testkey2",arg0);
            //designMapping.saveDesignModel(arg0)
            return ResultUtils.getSuccessResultData();
        }
    }

    (5) window可查看

     

     

    展开全文
  • 主要介绍了Springboot2.X集成redis集群(Lettuce)连接的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • SpringBoot无法连接redis

    2021-09-06 10:09:55
    SpringBoot连接redis失败解决方法这是报错信息这是配置文件这是依赖解决方案:总结: 在用springboot整合redis的过程中发现无法连接到redis,用了网上的解决流程并没有解决问题,最后发现原来是云服务器没有开放端口...

    在用springboot整合redis的过程中发现无法连接到redis,用了网上的解决流程并没有解决问题,最后发现原来是云服务器没有开放端口(光在虚拟机上开放6379端口不行)

    这是报错信息

    org.springframework.data.redis.RedisConnectionFailureException: 
    Unable to connect to Redis; 
    nested exception is io.lettuce.core.RedisConnectionException:
    Unable to connect to 8.130.29.45:6379
    
    

    这是配置文件

    # Redis服务器地址
    spring.redis.host=8.130.29.45 
    # Redis服务器连接端口
    spring.redis.port=6379
    # 连接超时时间(毫秒)
    spring.redis.timeout=5000
    

    这是依赖

    	    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
            </dependency>
    

    在这里插入图片描述

    解决方案:

    进入redis-config

    1.修改 protected-mode yes 改为:protected-mode no(关闭保护模式)

    2.注释掉 #bin 127.0.0.

    3.后台启动daemonize 改为yes在这里插入图片描述4.开启6379端口号或关闭防火墙
    方案一:永久关闭防火墙:(我用的方法)

    systemctl disable firewalld

    方案二:开启6379端口

    查看是否开启
    firewall-cmd --zone=public --query-port=6379/tcp
    
    [root@iZ0jlb0dvaeqvxytgqq4a8Z ~]# firewall-cmd --zone=public --query-port=6379/tcp
    yes
    

    如果为no则打开

    开启命令
    [root@bogon bin]# firewall-cmd --zone=public --add-port=6379/tcp --permanent 
    重载
    [root@bogon bin]# firewall-cmd --reload  
    重新查看
    firewall-cmd --zone=public --query-port=6379/tcp
    

    5.做完以上记得重启redis

    重新测试
    结果还是不尽人意,还是无法连接我们的公网ip
    打开我们的阿里云服务器

    发现原来我们虽然在虚拟机上开放了6379端口,但是在我们的云服务器上并没有开放6379端口

    手动添加后重新测试
    在这里插入图片描述
    测试成功了~
    在这里插入图片描述
    如果还是没有解决问题
    输入命令

    [root@iZuf6fqj5vfms2idodr6uwZ bin]# ps -ef|grep redis
    

    在这里插入图片描述
    这里如果是127.0.0.1说明配置文件没有生效,我们需要杀死这个进程
    执行

    kill 1945028 
    

    然后注释掉 #bin 127.0.0. 或者改为bind 0.0.0.0
    重启redis

    再次查看

    [root@iZuf6fqj5vfms2idodr6uwZ bin]# ps -ef|grep redis
    

    在这里插入图片描述
    0.0.0.0代表所有ip都能访问 这样也成功了

    总结:

    要记得不光在虚拟机上开放端口,在我们的云服务器上也要开放6379端口

    展开全文
  • 使用springboot搭建,连接mysql数据库以及redis缓存。需要修改数据库和redis配置才能正常运行。
  • springboot项目中redis连接超时问题

    千次阅读 2020-03-30 10:03:34
    用户登录后,停留在页面,一段时间不操作,再去使用相关功能提示IO异常,主机强制关闭了一个已有的连接 解决: 查询服务器相关的日志报出大量以下错误内容 ### Error querying database. Cause: org.spring...

    问题出现原因:

         用户登录后,停留在页面,一段时间不操作,再去使用相关功能提示IO异常,主机强制关闭了一个已有的连接

    解决:

    查询服务器相关的日志报出大量以下错误内容

    ### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransientConnectionException: HikariPool-3 - Connection is not available, request timed out after 30001ms.

    ### The error may exist in tfgic/tdcr/dao/ContractBaseInfoMapper.java (best guess)

    ### The error may involve tfgic.tdcr.dao.ContractBaseInfoMapper.selectCount

    ### The error occurred while executing a query

    ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransientConnectionException: HikariPool-3 - Connection is not available, request timed out after 30001ms.]

     org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

    ### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransientConnectionException: HikariPool-3 - Connection is not available, request timed out after 30001ms.

    ### The error may exist in tfgic/tdcr/dao/ContractBaseInfoMapper.java (best guess)

    ### The error may involve tfgic.tdcr.dao.ContractBaseInfoMapper.selectCount

    ### The error occurred while executing a query

    ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransientConnectionException: HikariPool-3 - Connection is not available, request timed out after 30001ms.

    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)

     

    乍一看以为是HikariPool连接池有问题,查阅了大量相关资料去修改HikariPool连接池配置,都不生效。将项目在本地运行,测试同样的接口,想着控制台可能会提示不同的错误,发现控制台报了redis的IO异常,以及其他相关错误,确认不是HikariPool连接池相关问题,从而转入到redis 的问题排查。

    第一阶段参考:http://www.classinstance.cn/detail/77.html

    该博客内容出现问题和项目遇到的问题类似,经过修改排查,最终发现问题

    第二阶段参考:https://blog.csdn.net/xianyirenx/article/details/84207393

    第二篇博客算是对问题确认的博客,因为springboot配置连接池的时候使用的是jedis,所以在pom中排除lettuce引用,解决问题。

     

     

    展开全文
  • 云服务器配置redisspringboot项目使用 请仔细阅读文章,常见错误都有罗列 本文选择的是阿里云的轻量级学生机,搭载linux的Centos7系统 本文使用的集成环境是IDEA,使用了阿里的仓库,(也科学上网来着,但是应该没...
  • 配置文件 如果redis设置了密码,一定要写 spring: application: name: redis-server database: 1 # Redis... port: 6379 # Redis服务器连接端口 timeout: 6000ms # 连接超时时间(毫秒) jedis: pool: max
  • 通过一个简单的例子使用Springboot 连接并使用Redis。 本文假设已经安装好Redis。 1.首先将URL转换为一个ID ,并使用 StringRedisTemplate 将ID 和 URL 保存到Redis 2. 根据ID 从Redis中获取对应的URL 项目结构...
  • SpringBoot链接远程Redis

    2020-04-11 18:57:31
    下面就很简洁的记录下在我们的SpringBoot中如何去整合Redis,以及其中过程中碰到的小问题,希望有帮助到你。 首先,在创建项目时,添加我们需要的依赖: 大家注意,这里添加了一个Spring Security的依赖。这是因为...
  • SpringBoot配置redis GitHub 地址:https://github.com/wannengdek/springboot-redis-linux 1、官方网站 https://redis.io/download linux 配置 $ wget http://download.redis.io/releases/redis-5.0.5.tar.gz ...
  • springboot连接Azure Redis出现的问题

    千次阅读 2018-09-13 10:00:52
    springboot连接Azure Redis出现的问题
  • 学习Redis时,SpringBoot整合Redis想试试连接腾讯云上的。 网上找了半天,试了很多方法,下面是成功案例 1. 修改redis.conf文件, 解除绑定本地ip, 并且关闭保护模式 注释掉 bind 127.0.0.1 protected-mode yes 改为...
  • springboot集成redis 1、 导包 <!--springboot中的redis依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</...
  • Mac下SpringBoot整合Redis

    2021-10-13 14:40:27
    以下是Redis安装的命令,对自己下载的版本进行修改 # 解压(我下载的版本是5.0.7) tar -zxvf redis-5.0.7.tar.gz # 拷贝的local目录下 sudo cp -rf redis-5.0.7 /usr/local/ # 进入相应目录下 cd /usr/local/redis-...
  • SpringBoot2.0之Redis-lettuce连接

    千次阅读 2018-10-25 12:44:23
    Lettuce 和 Jedis 的都是连接Redis Server的客户端程序。Jedis在实现上是直连redis server,多线程环境下非线程安全,除非使用连接池,为每个Jedis实例增加物理连接。Lettuce基于Netty的连接实例...
  • firewall-cmd --zone=public --add-port=6379/tcp --permanent #然后重启防火请 firewall-cmd --reload 修改redis配置文件将 bind 127.0.0.1 注销,这个一定要注销掉,不然它只能本地服务器才能连接成功 ...
  • 上一篇博文讲解了Redis集群的搭建过程,上上某篇讲解了SpringBoot连接Reids去缓存数据的过程,这一篇简单介绍一下SpringBoot怎么连接Redis集群缓存数据,实现高可用。 连接简直超简单,直接application.properties...
  • 在学习redis的时候,使用springboot连接redis时出现的问题: 首先,连接虚拟机上的redis服务时,需要把虚拟机的防火墙关闭这样外部才能访问到redis 命令如下: systemctl status firewalld.service 查看虚拟机的...
  • springboot 手动加载redis 配置文件

    千次阅读 2020-01-15 16:03:42
    如题,springboot 手动加载 配置文件中的加载文件, 本项目的redis 模块是从另一项目中加载过来的,而另一项目使用的 <!--工具类--> <dependency> <groupId>com.xiaoleilu</groupId> ...
  • springboot配置远程redis

    2020-12-29 14:27:27
    springboot的项目中对于redis进行相关的配置读取配置文件中的配置:RedisConfig建立redis连接池工厂RedisPoolFactory建立redis的服务RedisService 在云服务器上配置redis redis进行下载安装 首先去腾讯云或者...
  • Springboot2整合Redis+Mysql

    千次阅读 2019-09-06 17:58:02
    目录一、安装Redis二、Springboot2实例测试(1)创建项目--jpa查询mysql(2)整合Redis缓存(3)测试类三、总结 一、安装Redis 环境:Windows10 下载 下载链接:...
  • 在进行SpringBoot整合redis时,连接redis时出现了好多坑点,以此记录下来。完整步骤附上 1、先进行虚拟机中的redis的安装 环境:centOS7 本地虚拟机(或者阿里云…都可) 先进行下载redis的安装包 redis下载链接 将...
  • springboot连不上本地redis解决方法

    千次阅读 2018-10-16 16:30:14
    Cannot execute request on any known server 在默认设置下,Eureka服务注册中心也会将自己作为客户端来尝试注册它自己...在springboot配置文件中添加  registerWithEureka: false fetchRegistry: false  ...
  • springboot 连接redis并监控

    千次阅读 2020-05-27 10:07:20
    当我们有了一个springboot项目之后,我们就可以整合redis了! 1.java来操作redis有封装好的jedis包,所以首先我们需要给pom文件中引入我们所依赖的jedis <dependency> <groupId>redis.clients</...
  • SpringBoot连接redis数据库其实是很简单的事情,往里面写入数据也很简单,相比较而言比MySQL简单太多,这里演示一下从创建redis数据库到安装可视化管理软件“RedisDesktopManager”并通过SpringBoot中的依赖往里面...
  • } } 四、在Application主类中配置RedisConfig(@Import) @SpringBootApplication(exclude= {DataSourceAutoConfiguration.class}) @ComponentScan("com.example.demo") @Import(RedisConfig.class) public class ...
  • 目录SpringBoot封装整合Redis缓存实战一、从零开始认识 redis1.1、redis 概述1.2、redis 安装1.3、redis 图形管理工具的安装二、redis 常用命令操作2.1、redis的数据类型2.1.1、字符串类型 string2.1.2、哈希类型 ...
  • Springboot连接Redis报错

    2021-04-28 20:40:24
    原因:Redis protected-mode 是3.2 之后加入的新特性,在Redis.conf的注释中,我们可以了解到,他的具体作用和启用条件链接redis 时只能通过本地localhost (127.0.0.1)这个来链接,而不能用网络ip(192.168…)这个...
  • Springboot2.0整合Redis缓存+Ehcache缓存

    千次阅读 2019-05-17 17:01:07
    整合Redis缓存与Ehcache缓存

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,745
精华内容 3,898
关键字:

springboot连接本地redis

redis 订阅
spring 订阅