自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 收藏
  • 关注

原创 【TP5.1】 关联查询时,注意BETWEEN TIME查询

 $this->model ->with(['Task'=>function($query){ $query->where($where); }]) ->alias(['__TASK__'=>'task']) ...

2019-02-26 13:49:25 8755

原创 【TP5.1】 关联查询时,如何指定具体的字段信息

$this->model ->with(['Task']) ->alias(['__TASK__'=>'task']) ->where($where) ->removeOption('field') -...

2019-02-26 13:38:24 5873

原创 【MySQL】 批量修改表前缀

MySQL批量修改表前缀  示例原前缀:old_示例新前缀:new_代码示例:SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO new_', substring(table_name, 4), ';' )FROM ...

2019-02-21 15:28:28 1412

原创 [PHP] array_key_exists()与isset()的区别

array_key_exists()与isset()的区别isset() 对于数组中为 NULL 的值不会返回 TRUE,而 array_key_exists() 会代码示例:<?php$search_array = array('first' => null, 'second' => 4);// returns falseisset($search_array...

2019-02-16 11:10:21 454

原创 Mac OS 下 NVM 的安装与使用

安装 nvm安装命令(第一种):curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash安装命令(第二种):wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh |...

2018-10-08 09:47:42 678

原创 nvm,node,npm之间的区别

区别:nvm:nodejs 版本管理工具。 也就是说:一个 nvm 可以管理很多 node 版本和 npm 版本。 nodejs:在项目开发时的所需要的代码库 npm:nodejs 包管理工具。 在安装的 nodejs 的时候,npm 也会跟着一起安装,它是包管理工具。 npm 管理 nodejs 中的第三方插件关系:nvm 管理 nodejs 和 npm 的版本n...

2018-10-08 09:44:47 6181

原创 Hadoop:HA HDFS core-site.xml和hdfs-site.xml配置

core-site.xml <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value></property><property> <name>hadoop.tmp.dir<

2018-10-02 13:25:20 3546 1

原创 NameNode HA模式手动切换namenode状态

查看状态 1 hdfs haadmin -getServiceState nn1 有时候通过网页访问两个namenode的http-address,看到默认的主namenode状态变成了standy,这时可以通过下面命令来实现主namenode的状态切换成active。 1 hdfs  haadmin -failover ...

2018-10-02 13:23:08 3280

原创 解决 Unable to load native-hadoop library for your platform

启动Hadoop总是提示报错信息:18/09/19 11:29:08 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable原因:Apache提供的hadoop本地库是32位的,而在...

2018-09-19 11:48:14 5043

原创 在Linux上下载JDK

网上大部分教程建议通过Windows下载JDK安装包,再同步到Linux。这样做比较耗时,而且也比较麻烦。准备工作:1、JDK下载页面(非必须,可自己变更版本):http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html2、JDK1.8下载地址:https://do...

2018-09-11 11:04:46 5344

原创 Hadoop版本选择

一、版本介绍:   目前Hadoop的发行版除了Apache的开源版本之外,还有华为发行版、Intel发行版、Cloudera发行版(CDH)、Hortonworks发行版(HDP)、MapR等,所有这些发行版均是基于Apache Hadoop衍生出来的,因为Apache Hadoop的开源协议允许任何人对其进行修改并作为开源或者商业产品发布。国内大多数公司发行版是收费的,比如Intel发...

2018-09-11 10:53:19 1169

原创 fail_fast和fail_safe的介绍及区别

 一:快速失败(fail—fast)          在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出Concurrent Modification Exception。          原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变modCo...

2018-09-06 17:35:03 260

转载 Java并发编程:volatile关键字解析

Java并发编程:volatile关键字解析volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,...

2018-09-04 13:57:56 124

原创 SpringBoot多线程

Springt通过任务执行器(TaskExecutor)来实现多线程和并发编程。使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor。而实际开发中任务一般是非阻碍的,即异步的,所以我们要在配置类中通过@EnableAsync 开启对异步任务的支持,并通过实际执行Bean的方法中使用@Async注解来声明其是一个异步任务。 1、配置类packa...

2018-09-04 11:06:48 1006

原创 多线程ExecutorService的submit与execute的区别

1、方法介绍submit()和execute()都是 ExecutorService 的方法,是添加线程到线程池中。2、区别submit()有返回值,返回future。execute()没有返回值。3、submit() 返回值用处1)可以执行cancle方法取消执行 2)可以通过get()方法判断是否执行状态import java.util.concurrent.E...

2018-09-04 09:38:19 1702

原创 Java多线程(二)Java多线程的阻塞状态与线程控制

Thread.join()让一个线程等待另一个线程完成才继续执行。示例:如A线程线程执行体中调用B线程的join()方法,则A线程被阻塞,知道B线程执行完为止,A才能得以继续执行。Thread.sleep()让当前的正在执行的线程暂停指定的时间,并进入阻塞状态。在其睡眠的时间段内,该线程由于不是处于就绪状态,因此不会得到执行的机会。即使此时系统中没有任何其他可执行的线程,出于sle...

2018-08-31 16:47:03 878

原创 Java多线程(一):基础概念及三种实现方式

多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。 一.线程的生命周期及五种基本状态Java线程具有五中基本状态新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread();就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是...

2018-08-28 17:55:51 161

原创 select、poll、epoll区别

1、select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来...

2018-08-28 15:18:25 145

原创 同步、异步、阻塞、非阻塞、BIO/NIO/AIO/IO复用模型

一、什么是socket?什么是I/O操作?        我们都知道unix(like)世界里,一切皆文件,而文件是什么呢?文件就是一串二进制流而已,不管socket,还是FIFO、管道、终端,对我们来说,一切都是文件,一切都是流。在信息 交换的过程中,我们都是对这些流进行数据的收发操作,简称为I/O操作(input and output),往流中读出数据,系统调用read,写入数据,系统调用...

2018-08-28 14:38:09 361

原创 什么是线程?什么是进程?

一、进程进程是指在系统中正在运行的一个应用程序,程序一旦运行就是进程。进程是系统进行资源分配的独立实体, 且每个进程拥有独立的地址空间。一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间。进程之间的通信进程间通信 IPC(管道,信号量,共享内存,消息队列)。二、线程线程是进程的一个实体,是进程的一条执行路径。线程是CPU独立运行和独立调度的基本单位。...

2018-08-28 11:05:57 11027

原创 springboot Scheduled多线程

springboot单线程定时任务: 1. 在项目启动类上加@EnableScheduling注解只有加了这个注解,才能扫描到@Scheduled注解, 定时器才会起作用@SpringBootApplication@EnableScheduling//允许使用定时器public class SpringbootScheduledApplication { public...

2018-08-27 17:54:01 5339 1

转载 深入理解MyBatis中的一级缓存与二级缓存

这篇文章主要给大家深入的介绍了关于MyBatis中一级缓存与二级缓存的相关资料,文中详细介绍MyBatis中一级缓存与二级缓存的工作原理及使用,对大家具有一定的参考性学习价值,需要的朋友们下面来一起看看吧。 前言先说缓存,合理使用缓存是优化中最常见的,将从数据库中查询出来的数据放入缓存中,下次使用时不必从数据库查询,而是直接从缓存中读取,避免频繁操作数据库,减轻数据库的压力,同时提...

2018-08-21 20:31:03 613

转载 Spring入门及bean配置(XML、注解)

目录一、概述二、bean与spring容器的关系三、bean配置3.1 基于xml配置Bean3.1.1 Bean基本配置3.1.2 依赖注入3.2 使用注解定义Bean3.2.1 使用注解配置信息启动spring容器3.3 基于java类提供Bean定义四、Bean注入4.1 在xml文件中配置依赖注入4.1.1 属性注入4.1.2 构造方法注...

2018-08-07 14:36:49 924

原创 Java : ArrayList 初始化及赋值的两种方式

双括号初始化理解及效率问题参考:双大括号初始化的理解和使用 package com.idark;import java.util.ArrayList;/** * @description: Demo测试 * @author: iDark * @create: 2018/8/3 14:57 * @email: [email protected] */public class...

2018-08-03 15:02:20 67467

原创 Servlet学习:(四)Servlet Filter

一、Filter简介 在客户端的请求访问后端资源之前,拦截这些请求。 在服务器的响应发送回客户端之前,处理这些响应。二、Servlet 过滤器方法过滤器是一个实现了 javax.servlet.Filter 接口的 Java 类。javax.servlet.Filter 接口定义了三个方法:序号 方法 & 描述 1 public void doF...

2018-08-03 14:55:24 182

原创 Servlet学习:(三)Servlet3.0 上传文件

一、注意事项客户端(浏览器)表单的提交方法必须是post 必须有一个文件上传组件 <input type="file" name="file"/> 必须设置表单的enctype="multipart/form-data服务器在Servelt上添加注解  @MultipartConfig二、参考HttpServletRequest 对文件上传的支持此前...

2018-08-03 11:57:58 4489 2

转载 Servlet学习:(二)Servlet3.0 新特性 ,Annotation

新增的注解支持Servlet 3.0 的部署描述文件 web.xml 的顶层标签 <web-app> 有一个 metadata-complete 属性,该属性指定当前的部署描述文件是否是完全的。如果设置为 true,则容器在部署时将只依赖部署描述文件,忽略所有的注解(同时也会跳过 web-fragment.xml 的扫描,亦即禁用可插性支持,具体请看后文关于 可插性支持的讲解);如...

2018-08-02 18:18:54 195

转载 【转】JAVA EE 6 规范综述

目录1.JAVA EE规范综述2.JAVA EE整体架构3.JAVA EE规范的角色划分图4.JAVA EE平台依赖的J2SE API5.JAVA EE平台的版本变迁6.JAVA EE平台的趋势预测7.基于Oracle官网的关于的JAVA EE规范内容的划分方式a.webservice相关规范b.web容器相关规范c.ejb容器相关规范d.管理和安全相关...

2018-08-02 17:22:42 465

原创 Servlet学习:(一)使用IDEA手动编写一个Servlet

目录1、新建项目2、填写项目名称(MyFirstServlet)3、项目创建成功后的目录初始结构4、配置(1)在WEB-INFO目录下创建classes和lib目录(2)打开Project Structure(默认快捷键Ctrl+Alt+Shift+S  或者 File 菜单 -> Project Structure...),配置compiler output(3...

2018-08-02 16:06:32 2957 5

原创 【Mabitis链接Mysql 报错】The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than

背景:把mysql-connector-java升级到了8.0.11,导致查询数据库时候出现了错误错误信息:Could not get JDBC Connection; nested exception is java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents ...

2018-07-07 16:05:18 586

原创 Spring Boot 2.x(三) Learning 之 基于mybatis 的 CURD

继上一章自动生成的dao、mapper、model ,开始CURD二、Spring Boot 2.x Learning 之 Mybatis generator 生成Dao类、Model类、Mapping xml文件,自动生成代码 1、配置src/main/resources/applcation.ymlserver: port: 9001mybatis: mapper-...

2018-07-06 21:59:28 613

原创 Spring Boot 2.x(二) Learning 之 Mybatis generator 生成Dao类、Model类、Mapping xml文件,自动生成代码

1、打开项目,在pom.xml增加依赖及插件红色部分是主要的依赖及插件,generatorConfig.xml是generator的配置文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o...

2018-07-06 19:39:02 392

原创 Spring Boot 2.x(一) Learning 之 IDEA 创建Spring Boot(Maven+git+gitee)

 一、准备工作开发工具:IntelliJ IDEA 2018.1(IntelliJ IDEA下载地址:https://www.jetbrains.com/idea/download/#section=windows)代码管理:git(Git下载地址:https://www.git-scm.com/download/)仓库:gitee(官网:https://gitee.com/)项目管...

2018-07-06 18:43:11 602

原创 浅谈第三方登录数据库用户表结构设计

说起用户表,大概是每个应用/网站立项动工(码农们)考虑的第一件事情。用户表结构的设计,算是整个后台架构的基石。如果基石不稳,待到后面需求跟进了发现不能应付,回过头来反复修改用户表,要大大小小作改动的地方也不少。与其如此,不妨设计用户表之初就考虑可拓展性,争取不需要太多额外代价的情况下一步到位。先前设计idusernamepassword用户名加上密码,解决简单需求...

2018-01-04 10:11:00 515

原创 nginx proxy_cache 缓存配置

前言:由于本人工作原因,涉及到网络直播领域,其中视频的回放下载,涉及到了一些视频下载方面的技术。针对于一个完整视频的下载,目前市面上的主流做法是,先将整个视频流切片,存储到文件服务器中,在用户需要观看回放视频时。通过一个视频回源服务器,去文件服务器中逐个请求切片,返回给用户播放。今天着重探讨的是关于回源服务器缓存的配置以及合理的缓存策略。通过给回源服务器配置缓存的案例,详细讲解一整套缓...

2017-01-11 10:58:00 159

原创 MongoDB使用小结:一些常用操作分享

MongoDB使用小结:一些常用操作分享本文整理了一年多以来我常用的MongoDB操作,涉及mongo-shell、pymongo,既有运维层面也有应用层面,内容有浅有深,这也就是我从零到熟练的历程。MongoDB的使用之前也分享过一篇,稍微高阶点:见这里:《MongoDB使用小结》1、shell登陆和显示假设在本机上有一个端口为17380的MongoDB服务,假设已经把mongo...

2016-05-07 23:08:00 231

原创 PHP读取Mongodb数据报错,Cannot natively represent the long 8331412483000 on this platform

在使用PHP进行读取Mongo数据时,如果读取的int数据过大时,会自动转变为int64位。并会报以下错误:Cannot natively represent the long 8331412483000 on this platform只要在需要的地方添加代码:ini_set('mongo.long_as_object', 1); ...

2016-05-03 11:56:00 366

原创 MongoDB 学习笔记(python操作)

一、MongoDB 数据库操作  1. 连接数据库    import pymongo    conn = pymongo.Connection() # 连接本机数据库    # conn = pymongo.Connection(host="192.168.1.202") # 连接指定IP的数据库    db = conn.test # 进入指定名称的数据库    users = db...

2016-05-03 00:46:00 120

原创 Python 中 os.path模板

os.path.abspath(path) #返回绝对路径os.path.basename(path) #返回文件名os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。os.path.dirname(path) #返回文件路径os.path.exists(path)  #路径存在则返回True,路径损坏返回Fa...

2016-04-29 15:21:00 81

原创 Python 优雅的操作字典【转】

Python 中的字典是Python中一个键值映射的数据结构,下面介绍一下如何优雅的操作字典.1.1 创建字典Python有两种方法可以创建字典,第一种是使用花括号,另一种是使用内建 函数dict>>> info = {}>>> info = dict()1.2 初始化字典Python可以在创建字典的时候初始化字典...

2016-04-28 15:17:00 112

空空如也

空空如也

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

TA关注的人

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