自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(311)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于redis的分布式锁

分布式锁:用于解决多线程并发冲突问题。思路:①利用redis单线程模型。当想进行一个操作A时,先查看redis中是否具有个操作的标记位,如果没有,那么先在redis中存放标记位。这样有其他的线程操作A时,因为存在标记,那么只能等待或是丢弃。②为避免锁得不到释放的情况。比如获取到锁的线程处理数据时出现问题,而导致锁不能释放的状况,应该对redis存放的标记设置过期时间。这样,如果线程出现问题,锁不能及时释放,标记位到期后也能自动释放。注意标记位的过期时间应该设置为大于操作的时间,否则锁的功能并不能生效;

2020-09-23 17:34:08 248

原创 实现数据库新增数据幂等方案

数据库防止重复插入相同数据,使用幂等方案(并发插入情况,比如mq接受到消息后插入数据表)一、错误方案(使用的insert into …where not exists (select …)) insert into pointcloud ( id , mesh , tile, url , version, editor, create_time, update

2020-09-23 10:24:51 806

原创 MVVM中Databinding的使用

1、MVVM( Model-View-ViewModel),需要使用Data Binding在module的gradle中配置android{ dataBinding{ enabled true }}2.布局和节点介绍3.在代码部分在这里的设置方法都是和布局中data标签中的定义的variable中的name相对应。4....

2020-09-11 17:48:48 263

原创 Spring学习1

1、下载eclipsehttps://spring.io/tools3/eclipse2、将jar包导入到当前的web工程中https://www.cnblogs.com/xxuan/p/6949640.html3、eclipse中添加spring XML配置文件https://www.cnblogs.com/XingXiaoMeng/p/11159011.html4、spring所需...

2020-09-11 17:48:14 112

原创 myql深度学习1

1、mysql的各个数据引擎区别使用show engines可以显示所有得支持存储引擎其中最常用的就是InnoDB:①具有提交、回滚和崩溃后恢复能力的事物安全②为处理巨大的数据量的最大性能设计,在cpu效率可能是其他的基于磁盘的数据库引擎不能匹敌的。常被用于众多需要高性能的大型数据库节点上。③支持外键的完整性约束具体的应用场景:①如果提供提交回滚和崩溃能力的食物安全,并要求实现并发控...

2020-09-11 17:47:59 122

原创 myql深度学习7-索引

1、将一个表的查询的结果插入到另一个表中insert into table_name1 (column_list1) select (column_list2) from table_name2 where (condition)2、索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以提高数据库中特定的数据的查询速度。索引是一个单独的存储在磁盘上的数据库结构,包含的这对数据表的所...

2020-09-11 17:47:39 99

原创 分布式存储系统MinIO

1.背景简介按照开发需求,亟需合适的文件系统对图片、点云(3dtile文件)等进行有效管理。满足以下要求:1)能实现分布式部署且方便进行拓展。2)可以做负载均衡处理。3)能够实现快速查询及存储。4)图片量级非常大且大小为4MB左右。5)能够存储目录结构文件,比如:3dtile。经过调研,目前MinIO能够满足我们的需求,下面为MinIO的相关概念。2.适用范围地图业务中心3.术语定义无4.参考文档无5.Minio5.1架构5.2存储结构5.3功能相关概念MinIO 是

2020-09-03 09:55:29 3220

原创 Java常用分布式文件系统调研

1.背景简介应对“地图编辑系统”轨迹层的开发需求,亟需合适的文件系统对图片文件进行管理。目前调研文件系统需要满足以下几点:1)图片量级非常大;2)图片大小为4MB左右。3)便于快速查询。4)分布式部署和存储文件。5)数据查询能做到负载均衡。6)对开发人员友好。7)拓展方便。2.适用范围3.术语定义4.参考文档5.常用分布式文件系统5.1FastDFS5.1.1概述FastDFS是一款开源的分布式文件系统,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,

2020-09-02 11:25:58 1003

原创 分布式文件存储系统FastDFS使用

https://www.sohu.com/a/224411047_465959https://blog.csdn.net/lonelymanontheway/article/details/80777849https://www.cnblogs.com/hujunwei/p/11341614.htmlhttps://www.cnblogs.com/ityouknow/p/8240976.htmlhttps://github.com/happyfish100/fastdfs/wikihttps:/

2020-09-02 11:22:38 148

原创 mongodb学习1

1、使用管理员权限命令行启动MongoDB: net start MongoDB关闭MongoDB:net stop MongoDB2、建立连接mongo 127.0.0.1:27017/config3.创建数据库use test //创建test数据库db //显示当前的数据库show dbs //所有的数据库4.创建集合,在mongodb中和库的地位差不多,但是相当于mysql中的表,存放同一种格式的数据,但是并不是硬性要求,根据开发自觉。db.create

2020-07-15 11:14:34 119

原创 PostGre数据库安装

高精地图所需数据库1、安装postGrehttps://www.runoob.com/postgresql/windows-install-postgresql.html2、配置环境https://blog.csdn.net/moxien/article/details/47134363.初始化集群数据文件目录在C:\Windows\System32\cmd.exe 的cmd命令行中执行pg_ctl init4.启动服务①在bin目录下使用pg_ctl start②如果启动失败,执行 se

2020-07-08 11:28:18 631

原创 Socket实现数据通信

1、服务端:浏览器工作原理是遇到图片会开启一个线程进行单独的访问,因此在服务器端加入线程技术。(在客户端上传文件的时候,服务端也需要开启线程将流写成文件)public class ServerDemo { public static void main(String[] args) throws IOException { ServerSocket server = new ServerSocket(8888); while(true){

2020-06-15 17:27:55 203

原创 lambda表达式

1、使用lambda的前提:①使用lambda必须具有接口,且要求接口中有且只有一个抽象方法。如果有多个抽象方法,那么必须要有多个实现,lambda的形式并不支持。②必须具有上下文推断,即方法的参数和局部变量类型要为lambda对应的接口类型。2、标准格式:(参数类型 参数名称) -> { 代码语句 }①无参传递,无参返回public interface Cook { void makeFood();}public static void invoke(Cook cook)

2020-06-15 15:11:55 172

原创 线程基本原理-生产者-消费者问题

生产者-消费者问题就是线程协作的问题,notify通知的时候,会先唤醒等待时间最长的对象,因此不用担心自己唤醒自己的情况。public static void main(String[] args) { Baozi baozi = new Baozi(); baozi.flag = false; Chihuo Chihuo = new Chihuo("吃货", baozi); Chihuo.start(); Baozipu

2020-06-15 14:23:36 480

原创 线程基本原理

1、每个线程都会创建自己的栈空间,运行自己的run方法。线程的两种创建方法:①如果是重写Thread的run方法,因为使用的自己独有的资源空间,不存在线程同步的问题(没有实现资源共享)。②如果是多个Thread使用同一个Runnable对象,因为Runnable是一个共享的资源。多个线程要进行访问共享的数据的时候就需要线程同步的技术,否则就会出现数据不同步,也就是线程不安全(可以实现共享资源)。2、线程同步线程安全问题都是由全局变量及静态变量引起的。若每个线程对全局变量、静态变量只有读操作,而无写

2020-06-15 11:30:09 1466

原创 生成aar文件,并进行依赖

生成arr包,然后在项目中引用,那么做到依赖包中的文件只能查看不能修改的效果。1、创建gradle文件apply plugin: 'maven'/*依赖指定库*/ext { uploadArr = { name -> uploadArchives { repositories.mavenDeployer { // 配置本地仓库路径,项目根目录下的repository目录中//

2020-06-09 14:13:38 517

原创 JVM工作原理

1、首先是一个java文件要编译成class文件,然后这个class文件就由java虚拟机来处理,进入类加载子系统。2、一个进程就分配一个jvm,其中静态方法区和一些java堆就是整个进程共享的资源,而其他的本地方法栈和程序计数器等等都是一个线程中拥有的资源,不能多个线程共享。虚拟机栈:是线程具备的栈,平常所说的栈就是它。程序计数器:是为了计算下一条指令执行的地址。java堆:就是所有的线程共享的资源,主要存放对象的实例,几乎所有的对象的实例的内存空间都是由它进行分配的,所以oom就是堆满了。同时堆

2020-05-28 17:56:29 205

原创 线程池使用

一、线程池的构造器:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable

2020-05-28 09:13:42 116

原创 git命令

1.其它git init:初始化本地库git status:查看工作区、暂存区的状态git add <file name>:将工作区的“新建/修改”添加到暂存区 (可以提交单个文件/文件夹,格式注意斜线方向:E:/AndroidStudioWorkSpace/xxx/src/main/java/com/fpc/ldjg/supervise)git rm --cached ...

2020-04-07 18:01:08 188

原创 myql深度学习14-查询缓存

mysql的性能优化方面经常涉及到缓冲区(buffer)和缓存(cache),mysql采用的缓冲池(buffer pool)的方式来缓冲数据和索引。如果表改变了,那么这个表的缓冲查询将不再有效,查询缓存值得相关条目就被清空。①开启查询缓存需要在my.ini中配置,直接使用mysql命令并不生效query_cache_type=on②查看缓存是否已经开启SELECT @@query_ca...

2020-02-07 20:46:09 297

原创 myql深度学习13-日志

1、启动慢查询日志,目的记录数据库超时的操作。可以进行以下设置:①慢查询日志默认是关闭的,需要开启慢查询set global slow_query_log = on②设置慢查询的界限时间,默认是10秒,现在设置为5秒set global long_query_time = 5③设置慢查询的日志的存放位置set global slow_query_log_file = ‘D:slow...

2020-02-07 20:00:49 144

原创 myql深度学习12-数据库备份

1、数据库备份,备份需要在mysql的安装目录bin中,通过cmd,输入命令mysqldump -h连接名 -u账户名 -p密码 数据库名 数据表名 > xxx.sql例如:①备份整个的test数据库mysqldump -hlocalhost -uroot -proot test > mysqltest1.sql②备份test数据库下的student表mysqldump...

2020-02-07 16:22:40 206

原创 myql深度学习11-创建触发器

触发器是有insert、update、delete事件进行触发某个操作,然后强制的执行其业务规则。对于同一个操作可以创建多个触发器。但是应该注意应该避免触发对本表的插入删除和修改操作,防止触发器无限循环执行。可以使用before insert 、after insert、before update,after delete等操作。1、创建单条执行语句触发器,这里的NEW代表的就是当前插入的记录...

2020-02-06 21:23:53 152

原创 myql深度学习10-变量和流程控制语句

1、变量:在存储过程体中定义的局部变量和会话变量是不同的。在会话变量前面必须加@符号,且会话变量的作用域是整个会话,存储过程体可以使用declare语句来定义局部变量,存储过程的参数也被认为是局部变量,对于局部变量的使用不能在前面添加@符号。在存储过程和存储函数中可以定义和使用变量。也就是在begin…end程序段中使用declare关键字,然后为变量进行赋值。声明变量declare xxx...

2020-02-06 19:35:32 112

原创 myql深度学习9-存储函数

1、存储函数和存储过程很类似创建存储函数,其中参数func_parameter的表现形式[in | out | inout param_name type]create function func_name ([func_parameter])returns type begin return(routine_body); end例如:create ...

2020-02-06 18:48:01 113

原创 myql深度学习8-存储过程

1、存储过程就是一条或多条sql语句的集合,可视为批处理文件,将常用或复杂的工作预先用sql语句写好并用一个指定的名称存储起来,这个过程经过编译和优化后存储在数据库服务器中。在mysql中使用create procedure或create function来创建 子程序,并且使用call进行调用子程序。2、创建存储过程,其中的proc_parameter可以选择参数列表的形式如下:[in |...

2020-02-06 17:35:58 111

原创 myql深度学习7-索引

1、将一个表的查询的结果插入到另一个表中insert into table_name1 (column_list1) select (column_list2) from table_name2 where (condition)2、索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以提高数据库中特定的数据的查询速度。索引是一个单独的存储在磁盘上的数据库结构,包含的这对数据表的所...

2020-02-06 16:09:18 211

原创 myql深度学习6-查询

1、创建分组group by使用having配合group by使用,是对分组后的限制条件,注意having是表示的对一组数据限定,不能等同于where例如:按照deptId进行分组,并且判断这一组的个数大于1select GROUP_CONCAT(name),deptId from teacher group by deptId HAVING COUNT(name)>12、连接...

2020-02-05 19:17:34 92

原创 myql深度学习5-常用函数

1、正则运算符REGEXP①^:表示以什么字符开头②$:表示以什么字符结尾③.:匹配任何一个单字符④[…]:匹配方括号内的任何字符,比如[abc]匹配a、b、c。[a-z]匹配任意的字母⑤*:匹配零个或多个在他面前的字符。比如x表示的任意多个,[0-9]匹配任意数量的数字,"."匹配任意数量的字符例如:SELECT * from price where name REGEXP '^r...

2020-02-05 17:24:02 109

原创 myql深度学习4-数据类型

1、数值类型对于float double decimal中的M表示的是显示的宽度,D表示的小数位。如果插入的数据的小数位超过规定的小数位,那么久会进行四舍五入的处理。例如create table tablename ( price1 float(5,1), price2 double(5,1), total decimal(5,1)) 2、日期类型3、字符串类型varc...

2020-02-05 15:57:10 175

原创 myql深度学习3-视图

1、视图被定义后就存储在数据库中,与其相对应的数据并没有像表那样在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。通过视图修改数据时,相应的基本表的数据也要发生变化,同时基本表的数据发生变化,这种变化也自动的反应到视图中。2、使用视图的优势:将经常使用的SQL查询语句定义为视图,可以有效的避免代码重复,减少工作量。用视图封装sql语句,能减少直接操作数据表发生的一系列错误。并且...

2020-02-05 11:19:59 191

原创 myql深度学习2-修改数据表

1、修改数据表名alter table department rename dept2、修改字段数据类型alter table xxx modify 字段名 字段类型alter table student modify sex varchar(1)3、修改字段名alter table xxx change 旧字段名 新字段名 新字段类型4、添加字段alter table...

2020-02-05 10:24:49 136

原创 myql深度学习1-数据引擎和约束

1、mysql的各个数据引擎区别使用show engines可以显示所有得支持存储引擎其中最常用的就是InnoDB:①具有提交、回滚和崩溃后恢复能力的事物安全②为处理巨大的数据量的最大性能设计,在cpu效率可能是其他的基于磁盘的数据库引擎不能匹敌的。常被用于众多需要高性能的大型数据库节点上。③支持外键的完整性约束具体的应用场景:①如果提供提交回滚和崩溃能力的食...

2020-02-05 08:50:24 102

原创 vue学习简要概括2

1、自定义组件,外部组件响应内部组件事件,并且返回数据//全局注册一个组件 Vue.component('button-counter', { //自定义属性,可用于对组件内部传值 props: ["name"], //data必须是一个函数 data: function () { return { count: 0 } }, //通过$...

2020-01-15 15:05:28 142

原创 vue学习简要概括1

https://cn.vuejs.org/v2/api/#%E5%AE%9E%E4%BE%8B%E5%B1%9E%E6%80%A7https://cn.vuejs.org/v2/guide/instance.html1、v-bind 缩写<!-- 完整语法 --><a v-bind:href="url">...</a><!-- 缩写 --&gt...

2020-01-14 15:01:30 100

原创 Spring学习3

Spring和数据库的使用一定注意jar包要使用正确1.在bens配置文件中 <context:component-scan base-package="com.test2" /> <bean id="dataSrouce" class="org.springframework.jdbc.datasource.SimpleDriverDataSour...

2020-01-03 09:31:56 73

原创 redis的使用

一、redis的启动1、进入redis安装目录中的cmd界面,直接运行命令redis-server.exe redis.windows.conf。如果报错,依次执行第一条指令:redis-cli.exe,第二条指令:shutdown第三条指令:exit.若出现下面界面就表示启动成功了。2、双击安装目录中redis-cli.exe文件,启动客户端。二、Redis 只能支持六种数据类型(str...

2020-01-02 17:42:13 79

原创 Springboot基础使用2

一、①在对象中可以使用日期的格式化注解,这样输入的时候的传入的是new Date(),但是在输出的时候获取的String类型。这个是springBoot中默认使用jackson-databind。 这样必须在返回对象的时候,会自动经过jackson将对象转化成json,这样就会将date转化成"yyyy-MM-dd HH:mm:ss"的格式。class Teacher{....@JsonFo...

2020-01-02 15:28:26 103 1

原创 Springboot基础使用1

一、可以将application.properties修改为application.yml。yml使用的yaml语言,将普通的平铺的配置模式修改为缩进的层级的模式,更方便阅读。1.配置application.yml文件2.springboot内置了tomcat,不需要其他的配置,直接运行就可以了。二、日志打印,首先要初始化log对象,然后就可以直接使用了。private static f...

2019-12-31 15:58:08 81

原创 SpringBoot中获取配置文件中的属性

可以在程序中获取到application.yml中设置的属性,然后可以通过@Autowired 进行注入,获取到相应的对象进行使用。注意属性名和原有的配置文件中的名称要一致。同时支持列表list ,对象等的注入。配置文件格式# 设置正确的服务器端口,8080端口可能已经被占用,可以使用其他的端口号server: port: 8081 ssl: key-store: li.p1...

2019-12-31 15:47:54 417

学习spring所需要的jars

学习spring所需要的jars c3p0-0.9.1.jar com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar commons-logging-1.1.1.jar mysql-connector-java-5.1.7-bin.jar spring-aop-4.0.0.RELEASE.jar spring-aspects-4.0.0.RELEASE.jar spring-beans-4.0.0.RELEASE.jar spring-context-4.0.0.RELEASE.jar spring-core-4.0.0.RELEASE.jar spring-expression-4.0.0.RELEASE.jar spring-jdbc-4.0.0.RELEASE.jar spring-orm-4.0.0.RELEASE.jar spring-tx-4.0.0.REL

2019-11-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除