springboot~集成测试里的redis】的更多相关文章

测试不应该访问外部资源 对于单元测试,集成测试里,如果被测试的方法中使用到了redis,你需要去模拟一个单机环境的redis server,因为只有这样,你的测试才是客观的,即不会因为网络和其它因素影响你测试的准确性! redis的内嵌版本embedded-redis 它的源码在github上,大家有兴趣可以去看看,非常精简,而且还提供了单机,集群,哨兵多种redis环境,完全可以满足我们的测试需要. 添加依赖 //implementation 'org.springframework.boot…
前言 在之前的文章中,讲解了使用redis解决集群环境session共享的问题[快学springboot]11.整合redis实现session共享,这里已经引入了redis相关的依赖,并且通过springboot的配置,实现了session共享.下面,我们就通过springboot提供的RedisTemplate来操作redis. 注入RedisTemplate @Autowired private StringRedisTemplate redisTemplate; 这里我注入了一个Stri…
序 最近在入门SpringBoot,然后在感慨 SpringBoot较于Spring真的方便多时,顺便记录下自己在集成redis时的一些想法. 1.从springboot官网查看redis的依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependen…
通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题 关键字 springboot热部署  ClassCastException异常 反射 redis 前言 最近项目出现一个很有意思的问题,用户信息(token)储存在redis中:在获取token,反序列化的类型转换的时候,明明是同一个类却总是抛出ClassCastException的异常: 正文 1-问题 异常日志 java.lang.ClassCastException: com…
首先引用 nuget Abp.RedisCache 在 appsettings.json加上Redis服务器配置 "RedisCache": { "ConnectionString": "xx.xx.xx.xx:5001,password=xxx", "DatabaseId": "-1" } 然后在项目的依赖文件 AbpModule里加上Redis相关配置 using Abp.AutoMapper; usi…
区块链技术联盟 2018-02-08 17:06:40 目录 一.导语 二.shiro功能介绍 三.shiro详解 四.shiro实战案例分享 五.系统配置 六.其他 一.导语 今天推荐给大家一个非常简单,实用的开源权限框架:Shiro,这也是Java官方推荐的权限框架. 尽管网上有很多类似的文章,但是都不够完善,尤其是涉及到 freemaker,springboot,shiro,redis 整合的文章非常少,并且更多的是理论,缺失完整的可运行的源代码. 本文提供的源码,你可以将代码直接拷贝到自…
测试redis的主从配置 redis实例 文件夹名称如下 redis_master_s redis_slaver1_s redis_slaver2_s redis.conf文件 master的redis.conf文件(其余是默认设置) port 6379 daemonize yes # 这个文件夹要改成自己的目录 dir "/Users/vobile_lzl/redis_master_s" slaver1的redis.conf文件 port 6378 # 主服务器端口为6379 sla…
Redis是个很不错的Nosql数据库,比Memcached的好处是能持久化数据. Yii2里使用Redis ,首先要扩展Redis.可以在composer.json 里添加 redis "require": { "php": ">=5.4.0", "yiisoft/yii2": ">=2.0.5", "yiisoft/yii2-bootstrap": "*&quo…
前言:最近新项目准备用 redis 简单的缓存 一些查询信息,以便第二次查询效率高一点. 项目框架:springBoot.java.maven  说明:edis存储的数据类型,key一般都是String,但是value可能不一样,一般有两种,String和 Object: 如果k-v都是String类型,我们可以直接用 StringRedisTemplate,这个是官方建议的,也是最方便的,直接导入即用,无需多余配置! 如果k-v是Object类型,则需要自定义 RedisTemplate. 但…
之前写了关于读取自定义配置的文章springboot~yml里的自定义配置,而今天主要说一下对复杂配置信息的读取方法,我们简单的配置用@Value注解就可以了,而结构复杂的一般使用@ConfigurationProperties来实现,下面说一下. 配置信息 config-attributes: value: 345 #对应单个值 valueArray: 1,2,3,4,5,6,7,8,9 #对应数组 valueList: #对应list -13579 -246810 valueMap: #对应…
SpringBoot项目通常配合TKMybatis或MyBatis-Plus来做数据的持久化. 对于单表的增删改查,TKMybatis优雅简洁,无需像传统mybatis那样在mapper.xml文件里定义sql. 我们目前的项目呢,有一些数据分析的需求,涉及到多表关联.嵌套子查询等复杂的sql. 那么,TKMybatis是不是可以支持手写sql呢? 答案是yes! 我们知道,springboot集成tk-mybatis需添加2个依赖: <dependency> <groupId>t…
之前介绍的几篇redis的博文都是基于单机的redis基础上进行演示说明的,然而在实际的生产环境中,使用redis集群的可能性应该是大于单机版的redis的,那么集群的redis如何操作呢?它的配置和单机的有什么区别,又有什么需要注意的呢? 本篇将主要介绍SpringBoot项目整合redis集群,并针对这个过程中出现的问题进行说明,并给出相应的解决方案 I. 环境相关 首先需要安装redis集群环境,可以参考博文:redis-集群搭建手册 然后初始化springboot项目,对应的pom结构如…
SpringBoot学习笔记:Redis缓存 关于Redis Redis是一个使用ANSI C语言编写的免费开源.支持网络.可基于内存亦可以持久化的日志型.键值数据库.其支持多种存储类型,包括String(字符串).List(链表).Set(集合).有序集合.Hash(哈希类型). 用Redistemplate操作Redis 在Java中操作Redis可以使用Jedis.Spring Data Redis是基于Redis来实现的,它在Jedis上面封装了一层,让我们操作Redis更加简单. 连接…
安装 Redis,熟悉 Redis 的命令以及整合Redis,在Spring 中使用Redis. 代码实现 Redis 内置了 16 个库,索引是 0-15 ,默认选择第 0 个 Redis 的常用命令: 12345678910111213141516171819202122232425262728293031323334353637383940 select 1 flushdbKeys *String 类型数据的操作:set k1 1// 获得key的值get k1// 删除key的值del…
Spring-Boot项目中配置redis注解缓存 在pom中添加redis缓存支持依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 在yml中添加redis配置 设置缓存有效期为一天,配置类中使用 spring: redis:…
Mokito 单元测试与 Spring-Boot 集成测试 版本说明 Java:1.8 JUnit:5.x Mokito:3.x H2:1.4.200 spring-boot-starter-test:2.3.9.RELEASE 前言:通常任何软件都会划分为不同的模块和组件.单独测试一个组件时,我们叫做单元测试.单元测试用于验证相关的一小段代码是否正常工作. 单元测试不验证应用程序代码是否和外部依赖正常工作.它聚焦与单个组件并且 Mock 所有和它交互的依赖. 集成测试主要用于发现用户端到端请求…
一.Redis环境搭建 系统默认是使用ConcurrentMapCacheManager,然后获取和创建ConcurrentMapCache类型的缓存组件,再将数据保存在ConcurrentMap中 开发中使用缓存中间件:redis,memcached,ehcache 1.搭建redis环境 在linux上安装redis(推荐使用docker).docker安装redis的技巧:使用国内镜像可以加速下载. docker pull registry.docker-cn.com/library/re…
前言 之前已经写过一篇文章介绍SpringBoot整合Spring Cache,SpringBoot默认使用的是ConcurrentMapCacheManager,在实际项目中,我们需要一个高可用的.分布式的缓存解决方案,使用默认的这种缓存方式,只是在当前进程里缓存了而已.Spring Cache整合Redis来实现缓存,其实也不是一件复杂的事情,下面就开始吧. 关于Spring Cache的运用,请参考[快学SpringBoot]快速上手好用方便的Spring Cache缓存框架 新建一个Sp…
我们都知道,把首页数据放到Redis里,能够加快首页数据的访问速度.但是我们要如何准确又快速的将 Redis 整合到自己的 SpringBoot2.x 项目中呢?今天阿淼就带大家爬一爬其中的门门道道. 序.Redis 介绍 Redis 使用了浪费流量的文本协议,但因为它数据存储在内存中的,相对而言,依然可以取得极高的访问性能.并且 Redis 是线程安全的. RESP 就是 Redis 序列化协议的简称.它是一种直观的文本协议,优势在于实现异常简单,解析性能极好. Redis 协议里面虽然有大量…
一.前言 我们在实现使用Redis实现分布式锁,最开始一般使用SET resource-name anystring NX EX max-lock-time进行加锁,使用Lua脚本保证原子性进行实现释放锁.这样手动实现比较麻烦,对此Redis官网也明确说Java版使用Redisson来实现.小编也是看了官网慢慢的摸索清楚,特写此记录一下.从官网到整合Springboot到源码解读,以单节点为例,小编的理解都在注释里,希望可以帮助到大家!! 二.为什么使用Redisson 1. 我们打开官网 re…
在springboot里,我们的task任务可以添加docker构建的功能,在gradle集成环境里,直接可以实现编译,测试,打包镜像的流水线作业,很是方便! 下面分享给大家,在gradle里添加docker镜像的构建功能. 添加依赖 apply plugin: 'docker' buildscript { repositories { dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${s…
背景: 1.Redis 之前学了个皮毛 还忘的差不多了,感觉公司项目中的Redis用的真的牛逼,so 需要深造. 2.有个同事在搞Jedis,勾起了我对知识的向往,不会用,但是很渴望. 过程: 1.改造原有项目集成Jedis,引入jar包 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.2</ver…
原文:http://www.ityouknow.com/springboot/2016/03/06/spring-boot-redis.html https://blog.csdn.net/plei_yue/article/details/79362372 jar包版本: jedis-2.9.0.jar commons-pool2-2.4.3.jar spring-*-3.24.jar 如何使用 1.引入 spring-boot-starter-redis <dependency> <g…
平常测试redis操作命令,可能用的是cmd窗口 操作redis,记录一下 java程序操作reids, 操作redis的方法 可以用Jedis ,在springboot 提供了两种 方法操作 RedisTemplate 和StringRedisTemplate 两种方法的区别 可参考:https://blog.csdn.net/yifanSJ/article/details/79513179 当然 springboot 中也可以使用Jedis ,本次记录的是 如何使用RedisTemplate…
本次开发环境:idea2016.3.4 +jdk1.8+maven3.3.9+redis+springboot+jedis 本文中的项目使用Maven来管理项目依赖,使用Spring Session和Redis的组合来代替原有的HttpSession实现Session在不同项目之间的共享 项目结构: 构建Spring Boot pom文件如下 <modelVersion>4.0.0</modelVersion> <groupId>com.cky.sessionshare…
需求: 处理订单过期自动取消,比如下单30分钟未支付自动更改订单状态 解决方案1: 可以利用redis天然的key自动过期机制,下单时将订单id写入redis,过期时间30分钟,30分钟后检查订单状态,如果未支付,则进行处理但是key过期了redis有通知吗?答案是肯定的. 开启redis key过期提醒 修改redis相关事件配置.找到redis配置文件redis.conf,查看“notify-keyspace-events”的配置项,如果没有,添加“notify-keyspace-event…
1.介绍 有关Session的管理方式这里就不再进行讨论,目前无非就是三种单机Session(基于单机内存,无法部署多台机器).基于Cookie(安全性差).基于全局的统一Session管理(redis.mysql)等多种方式 针对于像淘宝这种超大型网站来说Session如何管理的就无从得知了.但是可以通过yy的方式想象一下,这种大型架构都需要部署多台认证Server,但是一般来说集中式Session无法存储那么多的Session 那么就可以通过UID分片的形式来存储,不同UID分布在不同的Se…
Redis 介绍 Redis是一款开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存也可持久化的日志型.Key-Value高性能数据库. 数据模型 Redis 数据模型不仅与关系数据库管理系统(RDBMS)不同,也不同于任何简单的 NoSQL 键-值数据存储.Redis 数据类型类似于编程语言的基础数据类型,所以开发人员感觉很自然.每个数据类型都支持适用于其类型的操作.受支持的数据类型包括: string(字符串) hash(哈希) list(列表) set(集合) zset(…
首先创建maven项目 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apa…
默认使用ConcurrentMapCacheManager 将数据保存在下面的Map中 docker: 安装Redis: 查看官方文档: 添加约束 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 此时redis就引入再容器中 可以查…