数据整合

Spring优雅整合Redis缓存

99封情书 提交于 2020-04-06 06:06:00
“小明,多系统的session共享,怎么处理?”“Redis缓存啊!” “小明,我想实现一个简单的消息队列?”“Redis缓存啊!” “小明,分布式锁这玩意有什么方案?”“Redis缓存啊!” “小明,公司系统响应如蜗牛,咋整?”“Redis缓存啊!” 本着研究的精神,我们来分析下小明的第四个问题。 准备: Idea2019.03/Gradle6.0.1/Maven3.6.3/JDK11.0.4/Lombok0.28/SpringBoot2.2.4RELEASE/mybatisPlus3.3.0/Soul2.1.2/ Dubbo2.7.5/Druid1.2.21/Zookeeper3.5.5/Mysql8.0.11/Vue2.5/Redis3.2 难度:新手-- 战士 --老兵--大师 目标: Spring优雅整合Redis做数据库缓存 步骤: 为了遇见各种问题,同时保持时效性,我尽量使用最新的软件版本。源码地址: https://github.com/xiexiaobiao/vehicle-shop-admin 1 先说结论 Redis缓存不是金弹,若系统DB毫无压力,系统性能瓶颈不在DB上,不建议强加缓存层! 增加业务复杂度:同一缓存必须被全部相关方法所覆盖,如订单缓存,只要涉及到订单数据更新的方法都要进行缓存逻辑处理。 同时,KV存储时,因各方法返回的类型不同

springboot整合freemarker

倖福魔咒の 提交于 2020-03-18 18:21:49
前言 本篇文章主要介绍的是springboot整合freemarker填充ftl模板文件,生成新的文件(如html),以及freemarker的语法。 GitHub源码链接位于文章底部。 freemarker介绍 freemarker是一款模板引擎,它基于模板来生成文本输出。这里的文本包括但不限于html页面,word,各种源代码文本...... 工作原理 模板:就是一份已经写好了基本内容,有着固定格式的文档,其中空出或者用占 位符标识的内容,由使用者来填充,不同的使用者给出的数据是不同的。在模板 中的占位符,在模板运行时,由模板引擎来解析模板,并采用动态数据替换占位 符部分的内容。 freemarker的应用方向有两个,一是基于ftl文件,将内容填充到ftl文件中,就可以使用制作ftl模板的文本的方式进行访问和显示了,比如使用html文本制作了一个ftl模板,我们使用代码填充数据进ftl模板,那么我们就能以访问html的方式去打开这个文件了;另一种方式则是直接生成对应的文件,比如生成xxx.html的文件。 应用场景 : 淘宝中的商品数不胜数,在商品的详情页这一块,如果全都以真实的html页面显示,那么有多少个商品就得有多少个页面了,何况还有增删改的情况。所以使用一个固定的ftl模板,填充数据,这样一个文件就能显示无数个页面的内容了。 再比如一些政府单位的项目

ssm框架整合入门系列——查询-返回分页的json数据

时光总嘲笑我的痴心妄想 提交于 2020-03-14 15:31:20
查询-返回分页的json数据 ajax查询过程 index.jsp页面直接发送ajax请求进行员工分页数据的查询 服务器将查出的数据,以json字符串的形式返回给浏览器 浏览器收到js字符串。可以使用js对json进行解析,使用js通过dom增删改改变页面。 返回json。实现客户端的无关性。 添加json支持 在 pom.xml 中添加: <!-- 返回json字符串的支持 --> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.8</version> </dependency> 修改EmployeeMapper.java 主要是添加了 getEmpsWithJson 方法 package com.liantao.crud.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import

Springboot2.0整合Redis时的序列化与反序列化

戏子无情 提交于 2020-02-29 15:57:38
首先说一下环境: springboot:2.1.7 redis:5.0.5 在默认的情况下,两者整合后便可将数据缓存到redis,但是缓存进去的对象类型数据是经过jdk默认序列化过后的,在可视化工具中是HEX格式,看起来非常不方便,所以需要进行格式化 首先创建 FastJsonRedisSerializer 类实现 RedisSerializer 接口 public class FastJsonRedisSerializer < T > implements RedisSerializer < T > { public static final Charset DEFAULT_CHARSET = Charset . forName ( "UTF-8" ) ; private Class < T > clazz ; public FastJsonRedisSerializer ( Class < T > clazz ) { super ( ) ; this . clazz = clazz ; } @Override public byte [ ] serialize ( T t ) throws SerializationException { if ( t == null ) { return new byte [ 0 ] ; } return JSON .

如何将Hive与HBase整合联用

谁都会走 提交于 2020-02-27 09:32:21
版本说明: HDP:3.0.1.0 Hive:3.1.0 HBase:2.0.0 一、前言 之前学习 HBase 就有疑惑,HBase 虽然可以存储数亿或数十亿行数据,但是对于数据分析来说,不太友好,只提供了简单的基于 Key 值的快速查询能力,没法进行大量的条件查询。 不过,Hive 与 HBase 的整合可以实现我们的这个目标。不仅如此,还能通过 Hive 将数据批量地导入到 HBase 中。 <!--more--> Hive 与 HBase 整合的实现是利用两者本身对外的 API 接口互相通信来完成的,其具体工作交由 Hive 的 lib 目录中的 hive-hbase-handler-xxx.jar 工具类来实现对 HBase 数据的读取。 二、适用场景 Hive 与 HBase 整合的适用场景: **1、**通过 Hive 与 HBase 整合,可以将 HBase 的数据通过 Hive 来分析,让 HBase 支持 JOIN、GROUP 等 SQL 查询语法。 **2、**实现将批量数据导入到 HBase 表中。 三、依赖条件 需要有以下依赖,ambari 已经为我们做好了这一切: 已有 HDFS、MapReduce、Hive、Zookeeper、HBase 环境。 确保 Hive 的 lib 目录下有 hive-hbase-handler-xxx.jar

springboot---数据整合篇

我只是一个虾纸丫 提交于 2020-02-11 22:56:33
本文讲解 Spring Boot 基础下,如何使用 JDBC,配置数据源和通过 JdbcTemplate 编写数据访问。 环境依赖 修改 POM 文件,添加spring-boot-starter-jdbc依赖。 <dependency> <groupId> org.springframework.boot </groupId> <artifactId> spring-boot-starter-jdbc </artifactId> </dependency> 添加mysql依赖。 <dependency> <groupId> mysql </groupId> <artifactId> mysql-connector-java </artifactId> <version> 5.1.35 </version> </dependency> <dependency> <groupId> com.alibaba </groupId> <artifactId> druid </artifactId> <version> 1.0.14 </version> </dependency> 数据源 方案一 使用 Spring Boot 默认配置 使用 Spring Boot 默认配置,不需要在创建 dataSource 和 jdbcTemplate 的 Bean。 在 src/main

Ehcache 整合Spring 使用页面、对象缓存

醉酒当歌 提交于 2020-02-10 04:57:50
Ehcache 在很多项目中都出现过,用法也比较简单。一般的加些配置就可以了,而且Ehcache可以对页面、对象、数据进行缓存,同时支持集群/分布式缓存。如果整 合Spring、Hibernate也非常的简单,Spring对Ehcache的支持也非常好。EHCache支持内存和磁盘的缓存,支持LRU、 LFU和FIFO多种淘汰算法,支持分布式的Cache,可以作为Hibernate的缓存插件。同时它也能提供基于Filter的Cache,该 Filter可以缓存响应的内容并采用Gzip压缩提高响应速度。 Email:hoojo_@126.com Blog: http://blog.csdn.net/IBM_hoojo http://hoojo.cnblogs.com/ 一、准备工作 如果你的系统中已经成功加入Spring、Hibernate;那么你就可以进入下面Ehcache的准备工作。 1、 下载jar包 Ehcache 对象、数据缓存: http://ehcache.org/downloads/destination?name=ehcache-core-2.5.2-distribution.tar.gz&bucket=tcdistributions&file=ehcache-core-2.5.2-distribution.tar.gz Web页面缓存: http:/

spring boot框架与Redis整合Unexpected character ('¬' (code 172)): expected a valid value

我们两清 提交于 2020-01-31 22:20:23
一般修改cachemanager之后会出现这个问题,只要删除redis保存的数据即可。 使用redisTemplate默认的序列化规则,改变默认的序列化规则(配置后所有的类保存到redis都会使用json格式,这也是2.0以后的新特性); @Bean public RedisCacheManager MyRedisCacheManager(RedisConnectionFactory redisConnectionFactory) { RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() .entryTtl(Duration.ofDays(1)) // 设置缓存过期时间为一天 .disableCachingNullValues() // 禁用缓存空值,不缓存null校验 .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())); // 设置CacheManager的值序列化方式为json序列化,可加入@Class属性 return RedisCacheManager

SpringBoot整合ActiveMQ(消息中间件)实现邮件发送功能

元气小坏坏 提交于 2020-01-29 06:43:47
1.ActiveMQ是什么鬼? ActiveMQ是一种开源的基于JMS(Java Message Servie)规范的一种消息中间件的实现,ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。ActiveMQ常被应用与系统业务的解耦,异步消息的推送,增加系统并发量,提高用户体验。 a.AcitveMQ的数据传送流程 b.ActiveMQ的两种消息传递类型 (1)点对点传输,即一个生产者对应一个消费者,生产者向broke推送数据,数据存储在broke的一个队列中,然后消费者接受该条队列里的数据。 (2)基于发布/订阅模式的传输,即根据订阅话题来接收相应数据,一个生产者可向多个消费者推送数据。两种消息传递类型的不同,点对点传输消费者可以接收到在连接之前生产者所推送的数据,而基于发布/订阅模式的传输方式消费者只能接收到连接之后生产者推送的数据 2.代码实现(注意:本地需先安装 ActiveMQ ) (1)构建maven项目,pom文件中引入依赖: (2)application.yml文件内容配置: 这里是mq和mail的配置,需要注意不要有重复配置,我刚开始配置了两个spring导致mail配置没有生效,项目启动时总是报无法自动注解!!! (3)Email实体类的创建: (4)创建生产者: (5)创建消费者(监听器):

SSM整合 redis 实现缓存管理

我怕爱的太早我们不能终老 提交于 2020-01-25 03:43:02
1.maven依赖 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.8.6.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> 2.spring整合配置 <!-- redis数据源 --> <!-- 加载配置文件 --> <context:property-placeholder location="/WEB-INF/config/redis.properties"/> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!-- 最大空闲数 --> <property name="maxIdle" value="${redis.maxIdle}"/> <!-- 最大空连接数 --> <property name="maxTotal" value="${redis.maxTotal}"/>