数据库+缓存
小黄鸭and小黑鸭
小黄鸭的快乐生活 嘻嘻(●'◡'●)
展开
-
批量匹配删除redis缓存
使用spring boot2.x cache —— redis作为数据缓存方案时,可以采用@CacheEvict用来清除相应的数据缓存,但是@CacheEvict底层使用的redis的keys命令来遍历查找,但是keys太过暴力,不支持offset、limit参数,而且是遍历算法,复杂度为O(n),当redis中的数据量较大时,很容易造成服务卡顿阻塞,所以在正式环境keys这个命令是禁用的,那么@...原创 2019-10-23 19:46:31 · 1338 阅读 · 0 评论 -
缓存的使用问题
缓存的使用问题1、缓存穿透发生场景拿一个根本不会在缓存中存入的key值去请求,一定会造成程序访问DB,然而在DB中并不能查到相应的数据,所以这个key在查询DB之后也不会写入缓存,就会造成每次查询这个key都会访问DB,当同时出现大量的这种请求超过DB的负载时就会发生缓存穿透解决方案当在DB中查询不到key时,也将key存入缓存,时效可以短一些2、缓存击穿发生场景当一个key值在缓...原创 2019-10-23 19:49:19 · 234 阅读 · 0 评论 -
spring boot2.x cache —— redis
引入pom文件```java<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency>## **yml配置**`...原创 2019-10-23 19:44:45 · 1001 阅读 · 0 评论 -
spring boot2.x分布式集成ehcache
学习资料:IBM BLOG、ehcache官网、分布式缓存博客EhCache 从 1.7 版本开始,支持五种集群方案,分别是:Terracotta、RMI、JMS、JGroups和EhCache Server下文主要记录了RMI的具体实现方式(模式内容介绍摘自IBM BLOG)。目前只实现了手动配置(有坑),自动发现未实现,期待大神指点RMI 集群模式RMI 是 Java 的一...原创 2019-10-23 19:41:31 · 922 阅读 · 0 评论 -
JDBC连接数据库crud
1、简单链接package com.kexin.database;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * 使用JDBC建立数据...原创 2018-08-24 10:21:54 · 136 阅读 · 0 评论 -
使用JDBC进行批处理
适用场景:当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应该采用JDBC的批处理机制,以提升执行效率。实现方式:方式一:Statement.addBatch(SQL),可以发送不同的SQL语句执行SQL语句的方法:executeBatch()清除批处理命令的方法:clearBatch() Connection conn = ...原创 2018-08-24 10:22:16 · 211 阅读 · 0 评论 -
canal+kafka实践——实时etl
canal解析sql数据库的binlog并格式化数据,然后同步到kafka消息,可以用来实现实时etlyml:spring: application: name: canal canal: topic-prefix: etl_timely. destination: example: 0 username: password:...原创 2018-09-04 18:15:10 · 12994 阅读 · 1 评论 -
canal
基于数据库增量日志解析,提供增量数据订阅&amp;amp;消费,目前主要支持了mysqlcanal装在/work/app/canal可以在bin目录下启动或关闭 原理: - canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议 - mysql master收到dump请求,开始推送binary log给slave(也就是...原创 2018-09-03 16:41:53 · 303 阅读 · 0 评论 -
redis
基本介绍内存数据存储,相比memcached,Redis支持更丰富的数据结构,例如hashes, lists, sets等,同时支持数据持久化。除此之外,Redis还提供一些类数据库的特性,比如事务,HA,主从库。可以说Redis兼具了缓存系统和数据库的一些特性,因此有着丰富的应用场景redis 的默认端口是 6379属性配置# REDIS (RedisProperties...原创 2018-09-03 16:47:28 · 180 阅读 · 0 评论 -
利用元数据将CRUD简化
JdbcUtils:package com.kexin.utils;import java.io.InputStream;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java....原创 2018-08-24 10:19:33 · 352 阅读 · 0 评论 -
Apache——DBUtils
需要导入的Jar包:commons-dbutils-1.2.jar简单的CRUD+总记录数:package com.kexin.demo;import java.sql.SQLException;import java.util.List;import org.apache.commons.dbutils.QueryRunner;import org.apache.co...原创 2018-08-24 10:19:45 · 262 阅读 · 0 评论 -
事务隔离级别
脏读:读到其它事务未提交的结果虚读:一个事务读到其它事务提交前后不同的结果四种隔离级别隔离级别越高,性能越低 1. Serializable(串行化):可避免脏读、不可重复读、虚读情况的发生; 2. Reapeatable read(可重复读):可避免脏读、不可重复读的情况的发生; 3. Read Committed(读已提交):可避免脏读的情况 4. Read unco...原创 2018-08-21 09:53:46 · 130 阅读 · 0 评论 -
DBUtils应用事务
1. DBUtils应用事务方式一public void transfer1(int sourceid,int targetid,double money) throws SQLException{ Connection conn = null; try{ conn = JdbcUtils.getConnection(); ...原创 2018-08-21 09:55:35 · 524 阅读 · 4 评论 -
JDBC控制事务
事务特性:一致性、原子性、隔离性、永久性当JDBC程序向数据库获得一个Connection对象时,默认情况下这个Connection对象会自动向数据库提交在他上面发送的SQL语句。 JDBC控制事务语句: - Connection.setAutoCommit(false)这个方法相当于在数据库中输入start transaction命令 - Connection.rollback()相当...原创 2018-08-21 09:56:01 · 623 阅读 · 0 评论 -
数据库连接池(数据源)
应用程序直接获取数据库连接缺点:用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。 1. 编写连接池需实现java.sql.DataSource接口。 DataSource接口中定义了两个重载的getConnection方法...原创 2018-08-21 09:56:31 · 667 阅读 · 0 评论 -
DBCP数据库连接池
DBCP 是 Apache软件基金组织下的开源连接池实现,使用DBCP数据源,应用程序应在系统中增加如下两个jar文件: - Commons-dbcp.jar:连接池的实现 - Commons-pool.jar:连接池实现的依赖库package com.kexin.utils;import java.sql.Connection;import java.sql.ResultSet...原创 2018-08-21 09:56:53 · 156 阅读 · 0 评论 -
C3P0数据库连接池
C3P0是Spring内置的数据源 需要导入的jar包是: - c3p0-0.9.2-pre1.jar - mchange-commons-0.2.jar方式一读取配置文件c3p0-config.xml(可以放在src下或者WEB-INF/classes下)方式二package com.kexin.utils;import java.beans.Propert...原创 2018-08-21 09:57:16 · 143 阅读 · 0 评论 -
配置Tomcat内置数据源
注意°==此种配置下,驱动jar文件需放置在tomcat的lib下==在META-INF下新建context.xml文件,然后配置相关属性,可以参考DBCP的配置文件:<Context> <Resource name="jdbc/datasource" auth="Container" type="javax.sql.DataSource"...原创 2018-08-21 09:58:10 · 487 阅读 · 0 评论 -
DBUtils应用事务
1. DBUtils应用事务方式一public void transfer1(int sourceid,int targetid,double money) throws SQLException{ Connection conn = null; try{ conn = JdbcUtils.getConnection(); ...原创 2018-08-21 09:58:39 · 151 阅读 · 0 评论 -
libsvm的简单使用
libsvm的简单使用1、libsvm简介 LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数可以解决原创 2017-05-16 18:43:12 · 545 阅读 · 0 评论