自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1104)
  • 资源 (2)
  • 论坛 (1)
  • 收藏
  • 关注

原创 MongoDB——聚合框架

使用聚合框架可以对集合中的文档进行变换和组合。基本上,可以用多个构件创建一个管道(pipeline),用于对一连串的文档进行处理。这些构件包括筛选(filtering)、投射(projecting)、 分组(grouping)、 排序(sorting)、 限制(limiting)和跳过(skipping)。例如,有一个保存着杂志文章的集合,你可能希望找出发表文章最多的那个作者。假设每篇文章被保存为MongoDB中的一个文档,可以按照如下步骤创建管道。将每个文章文档中的作者投射出来。将作者按照名字排序

2021-11-29 00:23:41 454

原创 MongoDB——特殊的索引和集合

固定集合MongoDB中的“普通”集合是动态创建的,而且可以自动增长以容纳更多的数据。MongoDB中还有另一种不同类型的集合,叫做固定集合,固定集合需要事先创建好,而且它的大小是固定的( 如图6-1所示)。说到固定大小的集合,有一个很有趣的问题:向-一个已经满了的固定集合中插入数据会怎么样?答案是,固定集合的行为类似于循环队列。如果已经没有空间了,最老的文档会被删除以释放空间,新插入的文档会占据这块空间。也就是说,当固定集合被占满时,如果再插入新文档,固定集合会自动将最老的文档从集合中删除。固定集合的

2021-11-28 23:40:54 298

原创 MongoDB——索引类型、索引管理

唯一索引唯一索引可以确保集合的每一个文档的指定键都有唯一值。例如,如果想保证文档的username键拥有不同的值,那么可以创建一个唯一索引:试图重复插入:发现有重复的键时抛出异常会影响效率,所以可以使用唯一索引来应对偶尔可能会出现的键重复问题,而不是在运行时对重复的键进行过滤。注意:如果一个文档没有对应的键,索引会将其作为null存储。所以,如果对某个键建立了唯一索引,但插入了多个缺少该索引键的文档,由于集合已经存在一个该索引键的值为null的文档而导致插入失败。有些情况下,一个值可能无法被索

2021-11-28 00:08:50 478

原创 MongoDB——数据类型详解

MongoDB在保留JSON基本键/值对特性的基础上,添加了其他一些数据类型。在不同的编程语言下,这些类型的确切表示有些许差异。基本类型null:用于表示空值或者不存在的字段{"x":null}布尔型:布尔类型有两个值true和false{"x":true}数值:shell默认使用64位浮点型数值。因此,以下数值在shell中shell中是很"正常"的:{"x":3.14}或{"x":3}对于整数值,可使用NumberInt类或NumberLong类:{"x":Numb

2021-11-23 00:34:26 127

原创 MongoDB——聚合操作详解

聚合(Aggregation)为集合文档数据提供各种处理数据方法,并返回计算结果。MongoDB提供了3种方式来执行聚合命令:聚合管道方法map-reduce方法单一目标聚合方法1. 聚合管道方法聚合管道方法又可以直接理解为合计流水线法,就是把集合里若干含数值型的文档记录,其键对应的值进行各种分类统计。该方法支持分片集合操作。db.collection_name.aggregate( [ {$match:{<field>}}, //统计查找条件 {$group:{&l

2021-11-21 01:03:32 149

原创 MongoDB——索引操作详解

MongoDB是基于集合建立索引(Index),索引的作用类似与传统关系型数据库,目的是为了提高查询速度。如果没有建立索引,MongoDB在读取数据时必须扫描集合中的所有文档记录。这种全集合扫描效率是非常低的,尤其在处理大数据时,查询可能需要花费几十秒到几分钟的时间。当建立索引后,查询将扫描索引内容,而不会去扫描对应的集合。但在建立索引的同时,是需要增加额外存储开销的;在已经建立索引的情况下,若新插入了集合文档记录,则会引起索引重排序,这个过程会影响查询速度。MongoDB的索引基于B-tree数据结果及

2021-11-20 22:38:56 556

原创 MongoDB——删除命令详解

语法db.collection.remove( <query>, //删除条件 { justOne: <boolean>, writeConcern: <document>, collation: <document> })参数说明:<query>:必选,设置删除文档条件justOne:可选,false为默认值,删除符合条件的所有文档;true则删除符合条件的一条文档writeConcern:可选,自定义写出错确认

2021-11-20 17:59:19 649

原创 MongoDB——更新操作详解

语法db.collection.update( <query>, //update的查询条件 <update>, //更新对象文档,含操作符功能使用 {//可选参数 upsert:<boolean>, multi:<boolean>, writeConcern:<document>, collation:<document> })用update命令在集合里更新一条或多条文档记录。db为当前数据库、col

2021-11-20 17:05:22 697

原创 MongoDB——查询操作详解

查询语法db.collection_name.find( query, //查询条件 projection //可选,指定需要返回的字段;默认返回所有字段)

2021-11-19 01:15:27 278

原创 MongoDB——插入操作详解

插入文档向集合中插入一条或多条文档。语法:db.collection.insert( { //可选字段 writeConcern:<document> ordered: <boolean> }, { //可选字段 writeConcern:<document> ordered: <boolean> }, ...)db为数据库名,collection为集合名,insert为插入文档命令。可选字段:writeCon

2021-11-18 17:56:57 309

原创 MongoDB——数据库相关操作命令

数据库类型

2021-11-17 23:56:26 402

原创 MongoDB——基本规则、数据类型

数据库建立基本规则序号注意事项1符合UTF-8标准的字符串2不能是空字符串""3不得含有" "(空格) 、.、$、/、\、\0(空字符)4区分大小写,建议全部小写5名称最多为64字节6不得使用保留的数据库名,如admin、local、config、test集合名称定义规则...

2021-11-17 00:09:08 1048

原创 Linux——定时运行作业

at命令at命令允许指定Linux系统何时运行脚本。at命令会将作业提交到队列中,指定shell何时运行该作业。at的守护进程atd会以后台模式运行,检查作业队列来运行作业。大多数Linux发行 版会在启动时运行此守护进程。atd守护进程会检查系统上的一个特殊目录(通常位于/var/spool/at)来获取用at命令提交的作业。默认情况下,atd守护进程会每60秒检查一下这个目录。有作业时,atd守护进程会检查作业设置运行的时间。如果时间跟当前时间匹配,atd守护进程就会运行此作业。1. 命令格式:

2021-11-10 00:02:46 806

原创 Linux——调整任务优先级

在多任务操作系统中(Linux就是),内核负责将CPU时间分配给系统上运行的每个进程。调度优先级(scheduling priority)是内核分配给进程的CPU时间(相对于其他进程)。在Linux系统 中,由shell启动的所有进程的调度优先级默认都是相同的。调度优先级是个整数值,从-20(最高优先级)到+19(最低优先级)。默认情况下,bash shell 以优先级0来启动所有进程。nice命令nice命令允许你设置命令启动时的调度优先级。要让命令以更低的优先级运行,只要用nice 的-n命令行来

2021-11-09 00:02:59 920

原创 Linux——处理信号

常见Linux系统信号信号值描述1SIGHUP挂起进程2SIGINT终止进程3SIGQUIT停止进程9SIGKILL无条件终止进程15SIGTERM尽可能终止进程17SIGSTOP无条件停止进程,但不是终止进程18SIGTSTP停止或暂停进程,但不终止进程19SIGCONT继续运行停止的进程默认情况下,bash shell会忽略收到的任何SIGQUIT(3)和SIGTERM(5)信号。但是bash she

2021-11-08 22:34:43 303

原创 Linux——创建临时文件

创建本地临时文件默认情况下,mktemp会在本地目录中创建一个文件。要用mktemp命令在本地目录中创建一个临时文件,你只要指定一个文件名模板就行了。模板可以包含任意文本文件名,在文件名末尾 加上6个X就行了。mktemp命令会用6个字符码替换这6个X,从而保证文件名在目录中是唯一的。你可以创建多个临时文件,它可以保证每个文件都是唯一的。在脚本中使用,mktemp命令时,可能要将文件名保存到变量中,这样就能在后面的脚本中引用了。#!/bash/shelltempfile=$(mktemp tes

2021-11-07 01:19:28 22

原创 Linux——处理选项

1. 处理简单选项在提取每个单独参数时,用case语句来判断某个参数是否为选项#!/bin/bash# extracting command line options as parameterswhile [[ -n "$1" ]]; do case "$1" in -a) echo "Found the -a option";; -b) echo "Found the -b option";; -c) echo "Fount the -c option";; *) echo

2021-11-01 22:34:10 12

原创 Linux——awk命令

基本语法awk [opion] 'awk_script' input_file1 [input_file2 ...]常用option:-F fs 使用fs作为输入记录的字段分隔符,默认为环境变量IFS的值-f filename 从文件filename中读取awk_script-v var=value 为awk_script设置变量运行方式:把awk的脚本命令直接放在命令中把awk的所有的脚本命令放在一个脚本文件中,然后用-f选项来指定要运行的脚本命令文件将awk_script放

2021-10-31 23:57:19 15

转载 Sublime Text3 Mac快捷键

符号说明⌘:command⌃:control⌥:option⇧:shift↩:enter⌫:delete打开、关闭、前往⌘⇧N 打开一个新的sublime窗口⌘N 新建文件⌘⇧W 关闭sublime,关闭所有文件⌘W 关闭当前文件⌘P 跳转、前往文件、前往项目、命令提示、前往method等等(Goto anything)⌘⇧T 重新打开最近关闭的文件⌘T 前往文件⌘⌃P 前往项目⌘R 前往method⌘⇧P 命令提示⌃G 前往行⌘KB 开关侧栏⌃` 打开控制台

2021-10-29 16:09:20 10

原创 MySQL——窗口函数

语法函数名称([字段名]) OVER([PARTITION BY <分组字段>][ORDER BY <排序字段> [DESC]] [<FRAME字句>])PARTITION BY字句:按照指定字段进行分区,两个分区由边界分割,即所谓的"窗口"。如果没有指定,那么它把整个结果集作为一个分组。窗口函数在不同的分区内分别执行,在跨越分区边界时重新初始化。ORDER BY子句:按照指定字段进行排序,开窗函数将按照排序后的记录顺序进行编号。可以和PARTITION BY子句

2021-10-03 23:46:36 67

原创 Android——Activity的生命周期

活动状态1. 运行状态:当一个活动位于返回栈的栈顶时,这时活动就处于运行状态。系统最不愿意回收的就是处于运行状态的活动,因为这会带来非常差的用户体验。2. 暂停状态:当一个活动不再处于栈顶位置,但仍然可见时,就进入了暂停状态。处于暂停状态的活动仍然是完全存活的,系统也不愿意去回收这种活动,只有在内存极低的情况下,系统才会去考虑回收这种活动。3. 停止转态:当一个活动不再处于栈顶位置,并且完全不可见的时候,就进入了停止状态。系统仍然会为这种活动保存响应的状态和成员变量,但是这并不是完全可靠的,当其

2021-01-04 23:58:56 132 2

原创 小程序——网络请求接口request、文件上传接口uploadFile、文件下载接口downloadFile

页面<view>网络接口</view><button bindtap="handleTap">发送请求</button><view>文件下载接口</view><button bindtap="tapdownload">点击下载</button><image src="{{url}}"/><view>文件上传接口</view><view class=

2020-12-28 00:51:08 513 1

原创 Spring——基础面试题

1. 什么是Spring?Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的编程模型促进 良好的编程习惯。2. 使用Spring框架的好处是什么?轻量:Spring是轻量的,基本的版本大约2MB控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或者查找依赖的对象们面向切面编程(A

2020-09-17 22:25:21 991 1

原创 Redis——基础面试

1. 什么是Redis?简述它的优缺点Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘 上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。Redis 的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外单个

2020-09-14 17:51:28 176

原创 并发编程——面试题

Synchronized相关问题1. Synchronized 用过吗,其原理是什么?Synchronized是由JVM实现的一种实现互斥同步的一种方式,如果你查看被Synchronized修饰过的程序块编译后的字节码,会发现被Synchronized修饰过的程序块,在编译前后生成了monitorenter和monitorexit两个字节码指令。虚拟机执行到monitorenter指令时,首先要尝试获取对象的锁:如果这个对象没有锁定,或者当前线程已经拥有了这个对象的锁,把锁的计数器+1;当执行mon

2020-09-12 23:16:09 239 1

原创 悲观锁与乐观锁

悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里面就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上 锁,但是在更新的时候会判

2020-09-12 01:20:57 118 1

原创 JVM——基础面试题

1. 内存模型以及分区JVM分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class类信息常量池(static常量和static变量)等放在方法区方法区:主要存储类信息,常量池,编译后的代码(字节码)等数据堆:初始化的对象,成员变量(非static),所有的对象实例和数组都要在堆上分配栈:栈的结构是栈帧组成的,调用一个方法就压入一帧,帧上面存储局部变量表,操作数栈,方法出口等信息,局部变量表存放的是8大基础类型加上一个引用类型,所以还是一个指向地址的指针本地方法栈:主要为N

2020-09-09 22:21:12 150 1

原创 23种设计模式——知识要点

1. 单例模式(Singleton Pattern)定义:Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)通用代码:(线程安全):public class Singleton { private static final Singleton singleton = new Singleton(); //限制产生多个对

2020-09-09 00:10:42 117

转载 Mysql——多表连接查询的执行细节

多表连接查询的执行细节create table a(a1 int primary key, a2 int ,index(a2)); --双字段都有索引create table c(c1 int primary key, c2 int ,index(c2), c3 int); --双字段都有索引create table b(b1 int primary key, b2 int); --有主键索引create table d(d1 int, d2 int); --没有索

2020-08-31 20:25:08 282

原创 MySQL——小表驱动大表

小表驱动大表准备两站表:CREATE TABLE `student` ( `id` int(11) NOT NULL, `no` varchar(20) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;INSERT INTO student VALUES(1, '0001', 'tom');INSERT INTO st

2020-08-31 16:20:27 152 1

原创 Kubernates——Pod定义详解

Pod定义详解yml格式的Pod定义文件的完整内容如下:apiVersion: v1kind: Podmetadata: name: string namespace: string labels: - name: string annotations: - name: stringspec: containers: - name: string image: string imagePullPolicy: [Always | Never | IfNtPresent

2020-08-29 09:14:29 118 1

原创 基于 Docker for MAC 的 Kubernetes 本地环境搭建与应用部署

基于 Docker for MAC 的 Kubernetes 本地环境搭建与应用部署查看Docker for mac支持的Kubernates版本:下载对应的镜像:阿里云执行脚本:./load_images.sh启动Kubernates(等待几分钟):验证集群状态:kubectl cluster-infokubectl get nodes如果勾选了Show system containers选项,可以使用docker ps命令看到自动安装的Kubernates相关容器:Doc

2020-08-28 15:51:26 273 1

原创 Kubernates——概述

Kubernates是什么Kubernetes是Google开源的容器集群管理系统。它构建在Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一整套功能,本质上可看作是基于容器技术的Micro-PaaS平台,即第三代PaaS的代表性项目。Google从2004年起就已经开始使用容器技术了,于2006年发布了Cgroup,而且内部开发了强大的集群资源管理平台Borg和Omega,这些都已经广泛使用在Google的各个基础设施中,而Kubernetes的灵感来源于Google的

2020-08-28 13:08:20 134

原创 Docker——常见问题总结

镜像相关1. 如何备份系统中所有的镜像首先,备份镜像列表可以使用docker images|awk 'NR>1{print $1":"$2}'|sort > images.list导出所有镜像为当前目录下文件,可以使用如下命令:while read img; do echo $img file="${img/\//-}" sudo docker save --output $file.tar $imgdone < images.list将本地镜像文件导入为Docker

2020-08-27 12:37:24 526

原创 Docker——部署SpringBoot项目

1. 准备SpringBoot项目并打包@RestControllerpublic class DockerController { @GetMapping("/docker/hello") public String hello() { return "hello world!"; }}编写dockerfile# 基础镜像使用javaFROM java:8# 作者MAINTAINER acton <actonzhang@163.com&g

2020-08-27 10:05:25 91 1

原创 DockerFile——指令说明

指令说明Dockerfile中指令的一般格式为INSTRUCTION arguments,包括”配置指令“(配置镜像信息)和”操作指令“(具体执行操作)。配置执行1. ARG定义创建镜像过程中使用的变量。格式为ARG <name> [=<default value>] 。在执行docker build 时,可以通过-build-arg[=]来为变量赋值。当镜像编译成功后,ARG指定的变量将不再存在(ENV指定的变量将在镜像中保留)。Docker内置了一-些镜像创建变

2020-08-26 16:28:22 89 1

原创 Docker——端口映射与容器互联

端口映射实现容器访问1. 从外部访问容器应用:在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数来指定端口映射。当使用-P (大写的)标记时,Docker会随机映射一个49000~49900的端口到内部容器开放的网络端口。-p则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器。支持的格式有:IP:HostPosrt:ContainerPortIP::Contain

2020-08-26 15:07:02 131 1

原创 Netty——经典面试题

TCP和UDP的根本区别TCP面向连接,如打电话要先拨号建立连接;UDP是无连接的,即发送数据之前不需要建立连接TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付TCP通过校验和、重传控制、序号标识、滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高要求的通信或广播通信每一条TCP连接只能是点到点的;UDP

2020-08-21 11:56:15 308

原创 SpringCloudAlibaba——Seata配置文件

Seata配置文件详解在${SEATA_HOME}\conf目录下有两个配置文件,分别是registry.conf和file.conf。registry.confregistry.conf包含两项配置:registry:表示配置Seata服务注册的地址,支持目前市面上所有主流的注册中心组件。它的配置非常简单,通过type指定注册中心的类型,然后根据指定的类型对应的服务地址信息,比如当type=nacos时,则匹配到Nacos的配置项如下:type="nacos"nacos { serverAd

2020-08-17 15:32:54 925

原创 SpringCloudAlibaba——Seata AT模式的实现原理

Seata AT模式的实现原理AT模式是基于XA事务模型演化而来的,所以它的整体机制也是一个改进版的两段提交协议。第一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。第二阶段:提交异步化,非常快速地完成。回滚通过第一阶段的日志进行反向补偿。以一个创建订单事务中的库存表tbl_repo来表述整个工作过程:AT模式第一阶段的实践原理:在业务流程中执行库存扣减操作的数据库操作时,Seata会基于数据源代理对源执行的SQL进行解析,代理的配置如下:@Beanpubli

2020-08-17 14:44:42 247 1

vuedevtools安装.zip

用于Chrome本地安装vue-devtools,无脑安装!!!! 安装过程: 1.Chrome=》设置=》更多工具=》扩展程序 2.打开开发者模式 3.加载已解压的扩展程序=》选择解压后的文件夹 4.重启浏览器 5.如果失败,在加载后的vuedevtools设置页面开启“允许访问文件网址”

2019-10-27

软考历年真题.zip

2009年开始一直到2018年,历年的软考中级-软件设计师真题。历年的上午+下午真题,全部为PDF格式。题目清晰,完整。

2019-09-09

吴声子夜歌的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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